Extensión de interfaces en POO en TypeScript
Las interfaces en TypeScript pueden heredar
unas de otras. Esta interacción
se llama extensión de interfaces.
Veamos un ejemplo. Supongamos que tenemos
una interfaz ISize:
interface ISize {
height: number;
width: number;
}
Hagamos una interfaz IStyle, que
extienda ISize:
interface IStyle extends ISize {
color: string;
}
Ahora creemos una clase Figure,
que implemente la interfaz IStyle. Nuestra
clase deberá implementar tanto la propiedad
de la interfaz misma, como la de su padre.
Hagámoslo:
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;
}
}
Comprobemos el funcionamiento:
let fig = new Figure(130, 200, 'green');
console.log(fig);
Cree una interfaz IProgrammer con
las propiedades salary y language.
Permita que esta interfaz herede de IUser
con las propiedades name, birthday.
Haga una clase Employee, que
implemente IProgrammer.