Ինտերֆեյսների ընդլայնում OOP-ում TypeScript-ում
TypeScript-ում ինտերֆեյսները կարող են ժառանգել
միմյանցից: Նման փոխգործակցությունը
կոչվում է ինտերֆեյսների ընդլայնում:
Դիտարկենք օրինակով: Ենթադրենք ունենք
ISize ինտերֆեյսը:
interface ISize {
height: number;
width: number;
}
Ստեղծենք IStyle ինտերֆեյսը, որ
կընդլայնի ISize-ը:
interface IStyle extends ISize {
color: string;
}
Այժմ ստեղծենք Figure դասը, որ
իրականացնում է IStyle ինտերֆեյսը: Մեր
դասը պետք է իրականացնի և՛ ինտերֆեյսի
հատկությունը, և՛ նրա ծնողի հատկությունը:
Եկեք անենք դա:
class 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;
}
}
Ստուգենք աշխատանքը:
let fig = new Figure(130, 200, 'green');
console.log(fig);
Ստեղծեք IProgrammer ինտերֆեյս
salary և language հատկություններով:
Թող այս ինտերֆեյսը ժառանգի IUser-ից
name, birthday հատկություններով:
Ստեղծեք Employee դաս, որ
իրականացնում է IProgrammer-ը: