Проширење интерфејса у ООП у 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.