lightalex
@lightalex

Как правильно прописать тип аргумента, чтобы были видны статичные свойства класса?

Есть следующий код:
class A {
	static b = 123;
}
function f(cls: new() => A) {
	console.log(cls.b); // Ошибка: Свойство "b" не существует в типе "new () => A".
}

Подскажите, как дать понять TypeScipt, что в cls я хочу получить класс A, вместе со статичными свойствами?
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ответы на вопрос 2
MagnusDidNotBetray
@MagnusDidNotBetray
Самый елеустремленный человек
Так?
class A {
  public static b: number = 123;
}
function f<T extends {b: number, new (...args: any[]): InstanceType<T>}>(cls: T) {
  console.log(cls.b);
}
Ответ написан
Aetae
@Aetae Куратор тега TypeScript
Тлен
class A {
  static b = 123;
}
function f(cls: typeof A) {
  console.log(cls.b); 
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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