Расширение интерфейсов в ООП в 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
.