首页 > 解决方案 > 如何获取对象的所有属性

问题描述

我需要获取一个类(或对象)的所有属性。还有所有未初始化的属性。

以下代码仅列出属性“att2”,但我想要所有(att1,att2,att3):

class ObjA {
  att1: string;
  att2 = 'test';
  att3: number;
}

function getAttributes(obj: ObjA) {
  for (const item of Object.keys(obj)) {
    console.log('Attribute: ' + item);
  }
}

function mainTest() {
  const obj = new ObjA();
  getAttributes(obj);
}

标签: angulartypescript

解决方案


你不能得到它们。

TS 中的代码优化会从您的对象实例中删除未定义的值。

只需将它们实例化为虚假值(字符串将是'',数字将是0),以便您的条件仍然受到尊重,并且您的函数应该可以工作。


推荐阅读