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:

typescriptinterface 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:

typescriptclass User implements IUser {
  name: string;
  
  constructor(name: string) {
    this.name = name;
  }
  
  greet() {
    return `hello, ${this.name}!`;
  }
}
Задание 1

Luo rajapinta IMath, jossa on ominaisuudet num1 ja num2 sekä menetelmä getDiv, joka jakaa ensimmäisen luvun toisella.

Задание 2

Tee luokka Math, joka toteuttaa rajapinnan IMath.