TypeScript'te OOP'de Arayüzlerin Genişletilmesi
TypeScript'te arayüzler birbirinden
miras alabilir. Bu etkileşime
arayüzlerin genişletilmesi denir.
Bir örnek üzerinden inceleyelim. Diyelim ki
ISize arayüzümüz var:
interface ISize {
height: number;
width: number;
}
ISize arayüzünü genişleten
IStyle arayüzünü yapalım:
interface IStyle extends ISize {
color: string;
}
Şimdi IStyle arayüzünü uygulayan
Figure sınıfını oluşturalım.
Sınıfımız, arayüzün kendi özelliğini ve
ebeveyninin özelliklerini uygulamak
zorunda olacak. Bunu yapalım:
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;
}
}
Çalışmasını kontrol edelim:
let fig = new Figure(130, 200, 'green');
console.log(fig);
salary ve language
özelliklerine sahip IProgrammer
arayüzünü oluşturun. Bu arayüzün,
name, birthday
özelliklerine sahip IUser
arayüzünden miras almasını sağlayın.
IProgrammer arayüzünü uygulayan
Employee sınıfını yapın.