У меня есть следующий код:
class Parent {
public static message: string;
}
class FirstChild extends Parent {
public static message: string = "Hello from first child";
}
class SecondChild extends Parent {
public static message: string = "Hello from second child";
}
const children: (new() => Parent) = [FirstChild, SecondChild];
console.log(children[0].message); // tsc error: property does not exist
Я получаю эту ошибку:
сообщение свойства не существует для типа new () => Parent
что имеет смысл, потому что тип относится только к сигнатуре конструктора.
Мой вопрос: какой тип я использую для описания массива с сигнатурами конструктора классов, расширяющихся от родительского элемента + stati c атрибутов этого родителя?