Typescript: универсальный способ получить класс во время выполнения из экземпляра - PullRequest
0 голосов
/ 09 мая 2018

Учитывая следующие классы, как я могу получить ссылку на класс на основе ссылки "this"?

См. ??? ниже. Мне нужно что-то, что возвращает класс текущего экземпляра. Дочерний класс this.type должен возвращать свойство TYPE своего класса. Не тот из родительского класса.

Спасибо

родительский класс

export class TypedAction implements Action {
  static TYPE = [NONE];
  get type (): string {
    return ???; // non generic writing: return TypedAction.TYPE
  }
}

детский класс (среди многих других)

export class LoginRequestAction extends TypedAction {
  static TYPE = '[Auth] Login requested';
  constructor(public payload?: { username: string, password: string }){
    super();
  };
}

1 Ответ

0 голосов
/ 09 мая 2018

Хорошо, нашел решение.

export class TypedAction implements Action {
  static TYPE = '[NO TYPE]';
  get type (): string {
    return (<typeof TypedAction>this.constructor).TYPE; 
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...