15
class
türünü nasıl bildirebilirim, böylece nesnenin genel bir sınıf kurucusudur? Aşağıdaki örnekte Sınıfta yapıcı türü var mı?
Penguin
veya
Lion
olabilir ya o yüzden
AnimalClass
için vermesi gereken tip bilmek istiyorum:
Tabii
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
tip çalışmaz ve it would zaten çok genel olmak.
Sıfır olmayan sayıda argüman alan bir kurucu. Bu örneğin neden işe yaradığını anlayabilmem için sonsuza kadar sürdü ama benim kodum yoktu. Arama yaptıktan sonra bulduğum şey, AnimalClass: typeof Animal' kullanmaktı. Bu, belirli bir sınıfın alt sınıflarını dinamik olarak yüklemek için çalışacaktır. – pixelpax
@pixelpax Sıfır olmayan bir argüman yapıcıyı şu şekilde tanımlayabilirsiniz: "new (... args: any []): Animal" – Sammi
@Sammi, Teşekkürler, çözümünüz anlamlıdır. Benim için, "Hayvanın herhangi bir alt sınıfının türü" anlamına gelmek için "Hayvan" türünü kullanmak gerçekten iyi çalıştı ve kodda açıklayıcı görünüyor. – pixelpax