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:

typescriptinterface ISize {
  height: number;
  width: number;
}

ISize arayüzünü genişleten IStyle arayüzünü yapalım:

typescriptinterface 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:

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;
  }
}

Çalışmasını kontrol edelim:

typescriptlet fig = new Figure(130, 200, 'green');
console.log(fig);
Задание 1

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.

Задание 2

IProgrammer arayüzünü uygulayan Employee sınıfını yapın.