Rozszerzanie interfejsów w OOP w TypeScript

Interfejsy w TypeScript mogą dziedziczyć po sobie. Takie interakcja nazywa się rozszerzaniem interfejsów. Spójrzmy na przykład. Załóżmy, że mamy interfejs ISize:

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

Stwórzmy interfejs IStyle, który będzie rozszerzał ISize:

typescriptinterface IStyle extends ISize {
  color: string;
}

Teraz stwórzmy klasę Figure, implementującą interfejs IStyle. Nasza klasa będzie musiała zaimplementować zarówno właściwość samego interfejsu, jak i jego rodzica. Zróbmy to:

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

Sprawdźmy działanie:

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

Stwórz interfejs IProgrammer z właściwościami salary i language. Niech ten interfejs dziedziczy IUser z właściwościami name, birthday.

Задание 2

Stwórz klasę Employee, która implementuje IProgrammer.