TypeScriptтеги ООПде интерфейсдерди кеңейтүү

TypeScriptтеги интерфейсдер бири-биринен мураса ала алат. Бул өз ара аракеттениш интерфейсдердин кеңейтилиши деп аталат. Келгиле, мисал аркылуу карайлы. Бизде ISize интерфейси бар болсун:

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

ISizeты кеңейткен IStyle интерфейсин жасайлы:

typescriptinterface IStyle extends ISize {
  color: string;
}

Эми IStyle интерфейсин ишке ашырган Figure классты түзөлү. Биздин класс интерфейстин өзүнүн касиетинин, ошондой эле ата-энесинин касиетин ишке ашырышы керек. Муну жасайлы:

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, 'жашыл');
console.log(fig);
Задание 1

salary жана language касиеттери менен IProgrammer интерфейсин түзүңүз. Бул интерфейс name, birthday касиеттери менен IUser интерфейсинен мураса алсын.

Задание 2

IProgrammer интерфейсин ишке ашырган Employee классты жасаңыз.