Получить свойства и значения класса, используя отражение Typescript - PullRequest
0 голосов
/ 03 июня 2019

Скажите, у меня есть класс

Class A {}

И хотел бы пройтись по Class A свойствам (проверяя нулевые значения), только зная, что Class A будет иметь свойства, но может отличаться по именам свойств и количеству свойств (например,)

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

или

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

Можно ли перебрать свойства Class A и проверить, не равны ли значения нулю?

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Класс 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));
1 голос
/ 03 июня 2019

во время выполнения

Только если вы явно назначаете их.

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);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...