TypeScriptda OOPda Interfeyslarni Kengaytirish

TypeScriptdagi interfeyslar bir-biridan meros olishi mumkin. Bunday o'zaro ta'sir interfeyslarni kengaytirish deb ataladi. Keling, buni misolda ko'ramiz. Faraz qilaylik, bizda ISize interfeysi mavjud:

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

Keling, ISize ni kengaytiradigan IStyle interfeysini yarataylik:

typescriptinterface IStyle extends ISize {
  color: string;
}

Endi IStyle interfeysini amalga oshiradigan Figure klassini yarataylik. Bizning klassimiz o'zining ham, uning ota-onasining ham xususiyatlarini amalga oshirishi kerak bo'ladi. Buni amalga oshiramiz:

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

Ishlashini tekshiramiz:

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

salary va language xususiyatlariga ega IProgrammer interfeysini yarating. Ushbu interfeys name, birthday xususiyatlariga ega IUser dan meros olsin.

Задание 2

IProgrammer ni amalga oshiradigan Employee klassini yarating.