Prima di tutto, Carattere tipografico supporta solo gete setsintassi quando rivolte a ECMAScript 5. Per raggiungere questo obiettivo, è necessario chiamare il compilatore con
tsc --target ES5
Le interfacce non supportano getter e setter. Per ottenere il codice per compilare si dovrebbe cambiare a
interface I {
getName():string;
}
class C implements I {
getName():string {
return null;
}
}
Che cosa fa dattiloscritto di supporto è una sintassi speciale per i campi nei costruttori. Nel tuo caso, si potrebbe avere
interface I {
getName():string;
}
class C implements I {
constructor(public name: string) {
}
getName():string {
return name;
}
}
Notate come classe Cnon specifica il campo name. In realtà è dichiarato utilizzando zucchero sintattico public name: stringnel costruttore.
Come Sohnee sottolinea, l'interfaccia è in realtà dovrebbe nascondere eventuali dettagli di implementazione. Nel mio esempio, ho scelto l'interfaccia di richiedere un metodo getter java-stile. Tuttavia, è possibile anche una proprietà e poi lasciare che la classe a decidere come implementare l'interfaccia.