使用Typescript反射获取类属性和值

时间:2019-06-03 04:49:40

标签: javascript typescript reflection

说我上课

Class A {}

并且仅在知道Class A具有属性,但属性名称和属性数量(例如)可能有所不同的情况下,才想遍历Class A属性(检查空值)

Class A {
  A: string;
  B: string;
} 

Class A {
  B: string;
  C: string;
  D: string;
}

有没有一种方法可以遍历Class A属性并检查值是否为null?

2 个答案:

答案 0 :(得分:1)

在运行时

仅当您明确分配它们时。

class A {
  B: string | null = null;
  C: string | null = null;
  D: string | null = null;
}
const a = new A();
for (let key in a) {
  if (a[key] == null) {
    console.log('key is null:', key);
  }
}

答案 1 :(得分:1)

TypeScript类在运行时不存在,因为它已被转换为普通的旧JavaScript。您可以获得对象实例的属性

const a = { prop1: null, prop2: 'hello', prop3: 1 };

const nullProps = obj => Object.getOwnPropertyNames(obj).filter(prop => obj[prop] === null);

console.log(nullProps(a));