Ich versuche, ein Muster für die Kombination mehrerer Schnittstellen in einer abstrakten Klasse zu entdecken. Momentan kann ich mehrere Schnittstellen über "implements" kombinieren, aber eine Schnittstelle kann keinen Konstruktor deklarieren. Wenn ich einen Konstruktor einführen muss, muss ich eine abstrakte Klasse verwenden. Wenn ich eine abstrakte Klasse verwende, muss ich die gesamte zusammengesetzte Schnittstelle neu deklarieren! Sicherlich vermisse ich etwas?Mehrfache Vererbung von Typoskripten?
interface ILayerInfo {
a: string;
}
interface ILayerStatic {
b(): string;
}
class Layer implements ILayerInfo, ILayerStatic {
constructor(info: ILayerInfo);
a: string;
b(): string;
}
ANTWORT: Verwendung ‚neuer‘:
interface Layer extends ILayerInfo, ILayerStatic {
new(info: ILayerInfo);
}
// usage: new Layer({ a: "" });
Es war die „neue“ Schlüsselwort auf der Oberfläche, die mir fehlte! Ich wollte die Klasse überhaupt nicht. Mit "neu" kann ich mich an Schnittstellen halten. –