Ինտերֆեյսների ընդլայնում 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-ը: