Пашырэнне інтэрфейсаў у ААП у TypeScript

Інтэрфейсы ў TypeScript могуць наследаваць адзін ад аднаго. Такога кшталту ўзаемадзеянне называецца пашырэннем інтэрфейсаў. Давайце паглядзім на прыкладзе. Хай у нас ёсць інтэрфейс ISize:

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

Зробім інтэрфейс IStyle, які будзе пашыраць ISize:

typescriptinterface IStyle extends ISize {
  color: string;
}

Цяпер давайце створым клас Figure, які рэалізуе інтэрфейс IStyle. Наш клас павінен будзе рэалізаваць як уласцівасць самага інтэрфейса, так і яго бацькі. Зробім гэта:

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

Праверым працу:

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

Стварыце інтэрфейс IProgrammer з уласцівасцямі salary і language. Хай дадзены інтэрфейс наследуе IUser з уласцівасцямі name, birthday.

Задание 2

Зрабіце клас Employee, які рэалізуе IProgrammer.