Rozszerzanie interfejsów w OOP w TypeScript
Interfejsy w TypeScript mogą dziedziczyć
po sobie. Takie interakcja
nazywa się rozszerzaniem interfejsów.
Spójrzmy na przykład. Załóżmy, że mamy
interfejs ISize:
interface ISize {
height: number;
width: number;
}
Stwórzmy interfejs IStyle, który
będzie rozszerzał ISize:
interface IStyle extends ISize {
color: string;
}
Teraz stwórzmy klasę Figure,
implementującą interfejs IStyle. Nasza
klasa będzie musiała zaimplementować zarówno właściwość
samego interfejsu, jak i jego rodzica.
Zróbmy to:
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;
}
}
Sprawdźmy działanie:
let fig = new Figure(130, 200, 'green');
console.log(fig);
Stwórz interfejs IProgrammer z
właściwościami salary i language.
Niech ten interfejs dziedziczy IUser
z właściwościami name, birthday.
Stwórz klasę Employee, która
implementuje IProgrammer.