乐闻世界logo
搜索文章和话题

Typescript 如何遍历的 object 的 key ?

2个答案

1
2

在TypeScript中,遍历对象的键可以使用几种不同的方法。以下是一些常用的方法:

1. for...in 循环

for...in 循环是JavaScript语言中遍历对象属性的传统方式。这种方法会遍历对象自己的属性以及原型链上可枚举的属性。

typescript
const obj = { a: 1, b: 2, c: 3 }; for (const key in obj) { if (obj.hasOwnProperty(key)) { console.log(key); // 输出 'a', 'b', 'c' } }

使用 hasOwnProperty 是为了确保只遍历对象自己的属性,而不包括原型链上的属性。

2. Object.keys()

Object.keys() 方法会返回一个包含对象自身可枚举属性名称的数组。

typescript
const obj = { a: 1, b: 2, c: 3 }; const keys = Object.keys(obj); keys.forEach(key => { console.log(key); // 输出 'a', 'b', 'c' });

这种方法不会遍历原型链上的属性。

3. Object.entries()

Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组。

typescript
const obj = { a: 1, b: 2, c: 3 }; for (const [key, value] of Object.entries(obj)) { console.log(key); // 输出 'a', 'b', 'c' }

类似于 Object.keys(),这种方法也不会包括原型链上的属性,并且提供了键和值。

4. Object.getOwnPropertyNames()

Object.getOwnPropertyNames() 方法返回一个数组,包含对象自身的所有属性(不仅仅是可枚举的属性)的名称。

typescript
const obj = { a: 1, b: 2, c: 3 }; const propertyNames = Object.getOwnPropertyNames(obj); propertyNames.forEach(name => { console.log(name); // 输出 'a', 'b', 'c' });

这个方法可以获得对象所有自有属性的名称,包括不可枚举的属性。

例子

假设我们有一个表示用户信息的对象,并想要遍历这个对象的键:

typescript
interface User { id: number; name: string; email: string; } const user: User = { id: 1, name: 'Jane Doe', email: 'jane.doe@example.com' }; Object.keys(user).forEach(key => { console.log(key); // 输出 'id', 'name', 'email' });

在这个例子中,我们使用了 Object.keys() 来遍历用户对象的键,并输出每个键。这种方法是常用且简洁的,适用于当你只需要对象的键时。

在TypeScript中使用这些方法时,也要注意对象的类型。如果对象的类型定义了可选属性或索引签名,那么在遍历时可能需要处理未定义的属性或动态键。

2024年6月29日 12:07 回复

如果您尝试编写类型注释,语法为:

shell
var x: { property: string; } = { property: 'hello' };

如果您尝试编写对象文字,语法为:

shell
var x = { property: 'hello' };

您的代码尝试在值位置使用类型名称。

2024年6月29日 12:07 回复

你的答案