Interfeyslərin OOP-də TypeScript-də genişləndirilməsi

TypeScript-də interfeyslər bir-birindən miras ala bilər. Belə qarşılıqlı əlaqə interfeyslərin genişləndirilməsi adlanır. Gəlin bir nümunəyə baxaq. Tutaq ki, bizim ISize interfeysimiz var:

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

Gəlin ISize-i genişləndirən IStyle interfeysini edək:

typescriptinterface IStyle extends ISize {
  color: string;
}

İndi gəlin IStyle interfeysini həyata keçirən Figure sinifi yaradaq. Bizim sinifimiz həm interfeysin öz xassəsini, həm də onun valideyninin xassəsini həyata keçirməlidir. Gəlin bunu edək:

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

Gəlin işi yoxlayaq:

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

salary və language xassələri olan IProgrammer interfeysini yaradın. Bu interfeysin name, birthday xassələri olan IUser-dən miras almasına icazə verin.

Задание 2

IProgrammer-i həyata keçirən Employee sinifini edin.