Birden çok arabirimi tek bir soyut sınıfa birleştirmek için bir desen bulmaya çalışıyorum. Şu anda, "arabirimler" aracılığıyla birden fazla arabirimi birleştirebilirim ancak bir arabirim bir kurucu bildiremez. Bir kurucuyu tanıtmam gerektiğinde, soyut bir ders kullanmaya zorlandım. Soyut bir sınıf kullandığımda, tüm bileşik arabirimi yeniden bildirmeliyim! Elbette bir şey mi eksik?Çok amaçlı kalıtım çözümleri mi yazıyor?
interface ILayerInfo {
a: string;
}
interface ILayerStatic {
b(): string;
}
class Layer implements ILayerInfo, ILayerStatic {
constructor(info: ILayerInfo);
a: string;
b(): string;
}
CEVAP: kullanım 'yeni': örnek üyeleri ile aynı arabirimde bir kurucu bildirmek
interface Layer extends ILayerInfo, ILayerStatic {
new(info: ILayerInfo);
}
// usage: new Layer({ a: "" });
Ben eksikti arayüzünde "yeni" anahtar kelime idi: Ne yapmak isteyeyim muhtemelen böyle bir şey! Dersi hiç istemedim. "Yeni" ile arayüzlere yapışabilirim. –