Først av alt, Loggfila bare støtter getog setsyntaks når target ECMAScript 5. For å oppnå dette, må du ringe kompilatoren med
tsc --target ES5
Grensesnitt støtter ikke kundeskaffere og settere. For å få koden til å kompilere du ville ha til å endre det til
interface I {
getName():string;
}
class C implements I {
getName():string {
return null;
}
}
Hva Loggfila gjør støtte er en spesiell syntaks for felt i konstruktører. I ditt tilfelle, kan du ha
interface I {
getName():string;
}
class C implements I {
constructor(public name: string) {
}
getName():string {
return name;
}
}
Legg merke til hvordan klassen Cikke angir feltet name. Det er faktisk erklært bruke syntetisk sukker public name: stringi konstruktøren.
Som Sohnee påpeker, er grensesnittet faktisk skal skjule eventuelle gjennomføring detaljer. I mitt eksempel, har jeg valgt grensesnittet til å kreve en java-stil getter metoden. Du kan imidlertid også en eiendom og deretter la klassen bestemme hvordan man implementerer grensesnittet.