ინტერფეისების გაფართოება OOP-ში 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-ს.