Rajapintojen laajentaminen OOP:ssa TypeScriptissä
Rajapinnat TypeScriptissä voivat periä
toisiltaan. Tällaista vuorovaikutusta
kutsutaan rajapintojen laajentamiseksi.
Katsotaanpa esimerkkiä. Oletetaan, että meillä on
rajapinta ISize:
interface ISize {
height: number;
width: number;
}
Tehdään rajapinta IStyle, joka
laajentaa ISize:
interface IStyle extends ISize {
color: string;
}
Nyt tehdään luokka Figure,
joka toteuttaa rajapinnan IStyle. Meidän
luokkamme on toteutettava sekä rajapinnan
ominaisuudet että sen vanhemman.
Tehdään tämä:
class Figure implements IStyle {
height: number;
width: number;
color: string;
constructor(height: number, width: number, color: string) {
this.height = height;
this.width = width;
this.color = color;
}
}
Tarkistetaan toiminta:
let fig = new Figure(130, 200, 'vihreä');
console.log(fig);
Luo rajapinta IProgrammer, jossa on
ominaisuudet salary ja language.
Antaa tämän rajapinnan periytyä IUser:sta,
jossa on ominaisuudet name, birthday.
Tee luokka Employee, joka
toteuttaa IProgrammer:n.