Задать вопрос
lightalex
@lightalex

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

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

Подскажите, как дать понять TypeScipt, что в cls я хочу получить класс A, вместе со статичными свойствами?
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Skillbox
    Frontend-разработчик
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 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); 
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы