Proširenje interfejsa u OOP-u u TypeScript-u

Interfejsi u TypeScript-u mogu da nasleđuju jedan od drugog. Takva interakcija se naziva proširenjem interfejsa. Pogledajmo na primeru. Neka imamo interfejs ISize:

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

Napravimo interfejs IStyle, koji će proširiti ISize:

typescriptinterface IStyle extends ISize {
  color: string;
}

Sada hajde da napravimo klasu Figure, koja implementira interfejs IStyle. Naša klasa će morati da implementira i svojstvo samog interfejsa i svojstva njegovog roditelja. Učinimo 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;
  }
}

Proverimo rad:

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

Napravite interfejs IProgrammer sa svojstvima salary i language. Neka ovaj interfejs nasleđuje IUser sa svojstvima name, birthday.

Задание 2

Napravite klasu Employee, koja implementira IProgrammer.