TypeScriptにおけるOOPのインターフェース拡張

TypeScriptのインターフェースは、互いに継承することができます。 このような相互作用は、インターフェースの拡張と呼ばれます。 例を見てみましょう。ISizeというインターフェースがあるとします:

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

ISizeを拡張するインターフェースIStyleを作成しましょう:

typescriptinterface IStyle extends ISize {
  color: string;
}

では、インターフェースIStyleを実装するFigureクラスを作成しましょう。 このクラスは、インターフェース自体のプロパティと、その親のプロパティの両方を実装する必要があります。 実装してみましょう:

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

プロパティsalaryとlanguageを持つインターフェースIProgrammerを作成してください。 このインターフェースが、プロパティname、birthdayを持つIUserを継承するようにしてください。

Задание 2

IProgrammerを実装するクラスEmployeeを作成してください。