Udvidelse af grænseflader i OOP i TypeScript

Grænseflader i TypeScript kan arve fra hinanden. Denne type interaktion kaldes udvidelse af grænseflader. Lad os se på et eksempel. Lad os sige, at vi har en grænseflade ISize:

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

Lad os lave en grænseflade IStyle, som udvider ISize:

typescriptinterface IStyle extends ISize {
  color: string;
}

Lad os nu oprette en klasse Figure, der implementerer grænsefladen IStyle. Vores klasse bliver nødt til at implementere både egenskaben fra grænsefladen selv og fra dens forælder. Lad os gøre det:

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

Lad os tjekke, hvordan det virker:

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

Opret en grænseflade IProgrammer med egenskaberne salary og language. Lad denne grænseflade arve fra IUser med egenskaberne name, birthday.

Задание 2

Lav en klasse Employee, som implementerer IProgrammer.