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

←
↑