Как получить класс в конструкторе с машинописью? - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь установить, чтобы очистить строку, все свойства моих классов в момент создания экземпляра.Но чтобы получить ВСЕ свойства, мне нужно получить «Класс», который создается в конструкторе.Буду признателен за любую помощь!

Я работаю с машинописью 3.1

  • Любые идеи, как я могу получить класс в конструкторе?
  • Или как я могу получитьсписок всех свойств, включая те, которые не были созданы, только при использовании «this», а не Class?

Здесь функция, которую я использую для получения всех свойств класса.

      Export class Base {
        id: String;
        ...

         constructor() {
           getAllProperties(MyClass) 
             // I would like to have MyClass to be dynamique
         }

      }

       function getAllProps(cls: new (...args: any[]) => any): any[] {   
         // return a list of all Class properties.
       }

Я также пытался использовать API Reflect.metadata, но не смог получить хорошие результаты безКласс.

1 Ответ

0 голосов
/ 31 января 2019

Родительский конструктор вызывается перед дочерним конструктором, поэтому он не будет работать.Вы можете создать функцию и вызывать ее после функции super ()

// Parent
class A1 {
    constructor() {
    }

    protected init() {
        //Get properties here
        console.log(this);
    }
}

// Child
class A2 extends A1 {
    public a;
    public b;

    constructor() {
        super();

        this.a = 1;
        this.b = 2;
        //code here...

        this.init();
    }
}
...