partyzanx
@partyzanx

Как затипизировать декорируемый класс?

interface IUsers {
    users: number;
    getUsers(): number;
  }

  @AddCreatedAt
  class Users implements IUsers {
    users: number = 900;
    getUsers(): number {
      return this.users;
    }
  }

  function AddCreatedAt<T extends { new (...args: any[]): {} }>(
    constructor: T
  ) {
    return class extends constructor {
      createdAt = new Date();
    };
  }
  console.log(new Users());


Как при использовании декоратора затипизировать грамотно,
чтобы было доступен метод createdAt в классе Users
после использования декоратора AddCreatedAt
Не используя "as" ?

Ссылка на песочницу
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 1
WblCHA
@WblCHA
https://www.typescriptlang.org/docs/handbook/decor...

// Note that the decorator _does not_ change the TypeScript type
// and so the new property `reportingURL` is not known
// to the type system:


https://www.typescriptlang.org/play?#code/ATCGCMGc...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы