Проширување на интерфејси во ООП во TypeScript

Интерфејсите во TypeScript можат да наследуваат еден од друг. Таквата интеракција се нарекува проширување на интерфејси. Ајде да погледнеме на пример. Нека имаме интерфејс ISize:

typescriptinterface ISize {
  height: number;
  width: number;
}

Да направиме интерфејс IStyle, кој ќе го прошири ISize:

typescriptinterface IStyle extends ISize {
  color: string;
}

Сега ајде да создадеме класа Figure, која ја имплементира интерфејсот IStyle. Нашата класа ќе треба да ги имплементира и својството на самиот интерфејс, и на неговиот родител. Да го направиме ова:

typescriptclass 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;
  }
}

Да ја провериме работата:

typescriptlet fig = new Figure(130, 200, 'green');
console.log(fig);
Задание 1

Создадете интерфејс IProgrammer со својства salary и language. Нека овој интерфејс наследува од IUser со својства name, birthday.

Задание 2

Направете класа Employee, која ја имплементира IProgrammer.