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