检查 TypeScript 中的对象是否为空

检查 TypeScript 中的对象是否为空

Check if an Object is Empty in TypeScript

在 TypeScript 中检查对象是否为空:

  1. 使用该Object.keys()方法获取对象键的数组。
  2. 访问length数组上的属性。
  3. 如果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
键值对,不是一个空对象。

如果没有任何迭代,则对象为空。

发表评论