Rajapinnat OOP-luokille TypeScriptissä
Rajapintoja TypeScriptissä käytetään laajasti
myös malleina luokille. Jotta luokkaan voidaan soveltaa
tarvittavaa rajapintaa,
luokan nimen jälkeen kirjoitetaan avainsana
implements ja sitten rajapinnan nimi.
Tässä tapauksessa rajapinnat kuvaavat vain luokan julkisia ominaisuuksia ja menetelmiä. Yksityinen osa määritetään itse luokassa, eikä sitä kuvata rajapinnassa.
Kokeillaan käytännössä. Oletetaan, että meillä on seuraava rajapinta, joka määrittää ominaisuuden ja menetelmän:
interface IUser {
name: string;
greet(): string;
}
Tehdään luokka, joka toteuttaa tämän rajapinnan.
Tässä luokassa meillä on toteutettava
ominaisuus name ja menetelmä greet:
class User implements IUser {
name: string;
constructor(name: string) {
this.name = name;
}
greet() {
return `hello, ${this.name}!`;
}
}
Luo rajapinta IMath, jossa on ominaisuudet
num1 ja num2 sekä menetelmä
getDiv, joka jakaa ensimmäisen
luvun toisella.
Tee luokka Math, joka toteuttaa
rajapinnan IMath.