Как я могу объявить тип class
, чтобы гарантировать, что объект является конструктором общего класса?
В следующем примере я хочу знать, какой тип я должен указывать на AnimalClass
, чтобы он мог быть Penguin
или Lion
:
class Animal {
constructor() {
console.log("Animal");
}
}
class Penguin extends Animal {
constructor() {
super();
console.log("Penguin");
}
}
class Lion extends Animal {
constructor() {
super();
console.log("Lion");
}
}
class Zoo {
AnimalClass: class // AnimalClass could be 'Lion' or 'Penguin'
constructor(AnimalClass: class) {
this.AnimalClass = AnimalClass
let Hector = new AnimalClass();
}
}
Конечно, тип class
не работает, и в любом случае он будет слишком общим.