În primul rând, typescript acceptă numai getși setsintaxă atunci când țintirea EcmaScript 5. Pentru a realiza acest lucru, trebuie să apel compilator cu
tsc --target ES5
Interfețe nu acceptă getters și setteri. Pentru a obține codul pentru a compila va trebui să-l schimbe pentru a
interface I {
getName():string;
}
class C implements I {
getName():string {
return null;
}
}
Ce dactilografiat are suport este o sintaxă specială pentru câmpurile din constructori. In cazul tau, ai putea avea
interface I {
getName():string;
}
class C implements I {
constructor(public name: string) {
}
getName():string {
return name;
}
}
Observați modul în care clasa Cnu specifică domeniu name. Acesta este , de fapt declarată folosind zahăr sintactic public name: stringîn constructor.
După cum subliniază Sohnee, interfața este, de fapt ar trebui să ascundă orice detalii de implementare. În exemplul meu, am ales interfața pentru a solicita o metodă getter-stil java. Cu toate acestea, puteți, de asemenea, o proprietate și apoi lăsați clasei să decidă cum să pună în aplicare interfața.