Estensione delle interfacce nella OOP in TypeScript

Le interfacce in TypeScript possono ereditare l'una dall'altra. Questa interazione si chiama estensione delle interfacce. Diamo un'occhiata a un esempio. Supponiamo di avere un'interfaccia ISize:

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

Creiamo un'interfaccia IStyle, che estenderà ISize:

typescriptinterface IStyle extends ISize {
  color: string;
}

Ora creiamo una classe Figure, che implementa l'interfaccia IStyle. La nostra classe dovrà implementare sia la proprietà dell'interfaccia stessa, sia quella del suo genitore. Facciamolo:

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

Verifichiamo il funzionamento:

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

Crea un'interfaccia IProgrammer con le proprietà salary e language. Lascia che questa interfaccia erediti IUser con le proprietà name, birthday.

Задание 2

Crea una classe Employee, che implementa IProgrammer.