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:
interface ISize {
height: number;
width: number;
}
Creiamo un'interfaccia IStyle, che
estenderà ISize:
interface 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:
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;
}
}
Verifichiamo il funzionamento:
let fig = new Figure(130, 200, 'green');
console.log(fig);
Crea un'interfaccia IProgrammer con
le proprietà salary e language.
Lascia che questa interfaccia erediti IUser
con le proprietà name, birthday.
Crea una classe Employee, che
implementa IProgrammer.