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

salary және language қасиеттері бар IProgrammer интерфейсін жасаңыз. Бұл интерфейс name, birthday қасиеттері бар IUser интерфейсін мурастасын.

Задание 2

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