Typoskript Mehrfachvererbung workarounds?
Ich versuche zu entdecken, ein Muster für die Kombination mehrerer interfaces in einer abstrakten Klasse. Jetzt kann ich kombinieren mehrere Schnittstellen über "implementiert", aber ein interface kann nicht deklarieren Sie einen Konstruktor. Wenn ich darf vorstellen, ein Konstruktor, bin ich gezwungen, verwenden Sie eine abstrakte Klasse. Wenn ich eine abstrakte Klasse muss ich re-deklarieren Sie die gesamte composite-Schnittstelle! Sicher bin ich etwas fehlt?
interface ILayerInfo {
a: string;
}
interface ILayerStatic {
b(): string;
}
class Layer implements ILayerInfo, ILayerStatic {
constructor(info: ILayerInfo);
a: string;
b(): string;
}
ANTWORT: verwenden Sie 'neu':
interface Layer extends ILayerInfo, ILayerStatic {
new(info: ILayerInfo);
}
//usage: new Layer({ a: "" });
InformationsquelleAutor der Frage Corey Alix | 2013-07-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Deklarieren Sie einen Konstruktor, der auf der gleichen Schnittstelle wie die Instanz-Membern nicht wirklich viel Sinn-wenn du gehst, um eine Art dynamisch, um in einem Konstruktor, es ist die statische Seite der Klasse, die würde eingeschränkt werden. Was würden Sie tun möchten, ist wahrscheinlich so etwas wie dieses:
Siehe auch Wie funktioniert Typoskript Schnittstellen mit konstruieren Signaturen arbeiten?
InformationsquelleAutor der Antwort Ryan Cavanaugh