TypeScriptにおけるOOPのインターフェース拡張
TypeScriptのインターフェースは、互いに継承することができます。
このような相互作用は、インターフェースの拡張と呼ばれます。
例を見てみましょう。ISizeというインターフェースがあるとします:
interface ISize {
height: number;
width: number;
}
ISizeを拡張するインターフェースIStyleを作成しましょう:
interface IStyle extends ISize {
color: string;
}
では、インターフェースIStyleを実装するFigureクラスを作成しましょう。
このクラスは、インターフェース自体のプロパティと、その親のプロパティの両方を実装する必要があります。
実装してみましょう:
class 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;
}
}
動作を確認してみましょう:
let fig = new Figure(130, 200, 'green');
console.log(fig);
プロパティsalaryとlanguageを持つインターフェースIProgrammerを作成してください。
このインターフェースが、プロパティname、birthdayを持つIUserを継承するようにしてください。
IProgrammerを実装するクラスEmployeeを作成してください。