Interfeisų plėtimas OOP TypeScript

Interfeisai TypeScript gali paveldėti vienas iš kito. Toks sąveikavimas vadinamas interfeisų plėtimu. Pažiūrėkime pavyzdžiu. Tarkime, mes turime interfeisą ISize:

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

Sukurkime interfeisą IStyle, kuris plėstų ISize:

typescriptinterface IStyle extends ISize {
  color: string;
}

Dabar sukurkime klasę Figure, įgyvendinančią interfeisą IStyle. Mūsų klasė turės įgyvendinti tiek paties interfeiso savybę, tiek ir jo pradininko. Padarykime tai:

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

Patikrinkime veikimą:

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

Sukurkite interfeisą IProgrammer su savybėmis salary ir language. Tegul šis interfeisas paveldi IUser su savybėmis name, birthday.

Задание 2

Sukurkite klasę Employee, kuri įgyvendina IProgrammer.