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:

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

Hagamos una interfaz IStyle, que extienda ISize:

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

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

Comprobemos el funcionamiento:

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

Cree una interfaz IProgrammer con las propiedades salary y language. Permita que esta interfaz herede de IUser con las propiedades name, birthday.

Задание 2

Haga una clase Employee, que implemente IProgrammer.