Разширяване на интерфейси в ООП в TypeScript
Интерфейсите в TypeScript могат да наследяват
един от друг. Такова взаимодействие
се нарича разширяване на интерфейси.
Нека да разгледаме пример. Нека имаме
интерфейс ISize:
interface ISize {
height: number;
width: number;
}
Нека направим интерфейс IStyle, който
ще разширява ISize:
interface IStyle extends ISize {
color: string;
}
Сега нека създадем клас Figure,
който имплементира интерфейс IStyle. Нашият
клас ще трябва да имплементира както свойството
на самия интерфейс, така и на неговия родител.
Нека го направим:
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;
}
}
Нека проверим работата:
let fig = new Figure(130, 200, 'green');
console.log(fig);
Създайте интерфейс IProgrammer със
свойства salary и language.
Нека този интерфейс наследява IUser
със свойства name, birthday.
Направете клас Employee, който
имплементира IProgrammer.