检查 TypeScript 中的对象是否为空
Check if an Object is Empty in TypeScript
在 TypeScript 中检查对象是否为空:
- 使用该
Object.keys()
方法获取对象键的数组。 - 访问
length
数组上的属性。 - 如果
length
属性等于0
,则对象为空。
索引.ts
interface Person { name?: string; age?: number; country?: string; } const person: Person = {}; if (Object.keys(person).length === 0) { console.log('Object is empty'); // 👉️ this runs } else { console.log('Object is NOT empty'); } const isEmpty = Object.keys(person).length === 0; console.log(isEmpty); // 👉️ true
我们使用
Object.keys
方法获取对象所有键的数组。
索引.ts
// 👇️ ['name', 'age'] console.log(Object.keys({ name: 'James', age: 30 }));
Object.keys
如果对象没有键值对(如果它是空的),该方法返回一个空数组。如果访问length
键数组上的属性返回 以外的任何内容0
,则该对象不为空。
如果必须经常执行检查,您可以创建一个可重用的函数。
索引.ts
interface Person { name?: string; age?: number; country?: string; } const person: Person = {}; function isEmpty(obj: Record<string, any>): boolean { return Object.keys(obj).length === 0; } console.log(isEmpty(person)); // 👉️ true console.log(isEmpty({ name: 'James' })); // 👉️ false
该函数接受一个对象,true
如果该对象为空则返回,
false
否则返回。
另一种方法是尝试迭代对象的属性。如果只有一次迭代,那么对象就不是空的。
索引.ts
interface Person { name?: string; age?: number; country?: string; } const person: Person = {}; function isEmpty(obj: Record<string, any>): boolean { for (const _key in obj) { return false; } return true; } console.log(isEmpty(person)); // 👉️ true console.log(isEmpty({ name: 'James' })); // 👉️ false
在代码片段中,我们创建了一个辅助函数,它试图遍历传入对象的属性。
如果有偶1
次迭代,我们就知道这个对象至少有1
键值对,不是一个空对象。
如果没有任何迭代,则对象为空。