Как получить свойства класса с пустым конструктором, используя Typescript в Angular 7

Я пытаюсь динамически связать formgroup с моим классом. Но я не могу сделать это с «getRawValue () как MyClass», потому что у меня есть компонент «автозаполнение» из Primeng, где у него есть другой объект внутри. Пример: результат получения RawValue.

{
 field1: value;
 field2: value;
 autocomplete: {filed3: value, anotherfield: value}
}

Пример: класс для привязки

export MyClass {
   field1: number;
   field2: string;
   field3: number;
}

Затем я подумал получить свойства из «MyClass» и сравнить с необработанным значением, но если в моем классе нет конструктора, инициализирующего свойства, я не могу получить их имена. Я также не знаю, может ли это быть лучшим решением. я использую Object.getOwnPropertyNames(new MyClass()); Цель состоит в том, чтобы использовать в любом классе в моем проекте.


person Faqtt0    schedule 22.11.2018    source источник


Ответы (1)


попробуйте инициализировать класс пустым значением в конструкторе

export class MyClass {
  constructor(
     public field1: number = 0;
     public field2: string = '';
     public field3: number = 0;
  ) {}
}

Тогда вы получите значения

Object.getOwnPropertyNames(new MyClass());
person Sheik Althaf    schedule 22.11.2018
comment
этот способ работает. Но я хотел бы получить эти значения, не делая этого. я могу сделать это с декораторами, но у меня будет класс за классом. если есть способ сделать это без инициализации свойств, то я сделаю это дженериками. - person Faqtt0; 22.11.2018