Extinderea interfețelor în OOP în TypeScript

Interfețele în TypeScript pot moșteni unele de la altele. Această interacțiune se numește extinderea interfețelor. Să ne uităm la un exemplu. Să presupunem că avem interfața ISize:

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

Să creăm interfața IStyle, care va extinde ISize:

typescriptinterface IStyle extends ISize {
  color: string;
}

Acum să creăm clasa Figure, care implementează interfața IStyle. Clasa noastră va trebui să implementeze atât proprietățile interfeței în sine, cât și ale părintelui său. Să facem acest lucru:

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

Să verificăm funcționarea:

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

Creați o interfață IProgrammer cu proprietățile salary și language. Lăsați această interfață să moștenească IUser cu proprietățile name, birthday.

Задание 2

Creați clasa Employee, care implementează IProgrammer.