Zunächst einmal unterstützt Typoskript nur getund setSyntax , wenn ECMAScript 5. Targeting Um dies zu erreichen, müssen Sie den Compiler aufrufen mit
tsc --target ES5
Schnittstellen unterstützen keine Getter und Setter. Um den Code zu kompilieren, würden Sie es ändern müssen, um
interface I {
getName():string;
}
class C implements I {
getName():string {
return null;
}
}
Was Typoskript tut Unterstützung eine spezielle Syntax für Felder in Konstrukteuren ist. In Ihrem Fall könnten Sie haben
interface I {
getName():string;
}
class C implements I {
constructor(public name: string) {
}
getName():string {
return name;
}
}
Beachten Sie, wie Klasse Cdas Feld nicht spezifiziert name. Es wird tatsächlich mit syntaktischem Zucker erklärt public name: stringim Konstruktor.
Wie Sohnee weist darauf hin, wird die Schnittstelle tatsächlich alle Implementierungsdetails verbergen soll. In meinem Beispiel habe ich die Schnittstelle ausgewählt, um eine Java-Stil Getter-Methode erforderlich ist. Sie können aber auch eine Eigenschaft und dann lassen Sie die Klasse entscheiden, wie die Schnittstelle zu implementieren.