← 解説「interface の継承 extends」に戻る
サンプルコードで身につける: interface の継承 extends
解説で学んだ概念を、5つの具体例で確認します。素朴な例から実務寄りの例へと進みます。
1乗り物を継承した車の型
extends の最も基本的な形です。Car は Vehicle の wheels を引き継ぎつつ brand を追加するので、Car 型のオブジェクトは両方のプロパティを持つ必要があります。
TypeScript
2id と作成日時を共通ベースにまとめる
全データが共通で持つ id や createdAt を1つの interface にまとめ、各データ型がそれを extends する形は実務の頻出パターンです。共通項目の定義が一箇所に集まり、変更にも強くなります。
TypeScript
33段階の継承チェーン
extends は何段でも重ねられ、子は祖先すべてのプロパティを引き継ぎます。生き物 → 動物 → 犬と具体化するにつれてプロパティが積み重なる様子を確かめてみましょう。
TypeScript
4複数の interface を同時に継承する
extends はカンマ区切りで複数の interface を指定できます。「名前を持つ」「更新日時を持つ」のような小さな性質を部品として用意し、組み合わせて型を作る実務的なテクニックです。
TypeScript
5親の型で受けて共通処理を書く
親の interface を引数の型にすると、それを extends したどの型の値も渡せます。エンティティの種類を問わず ID を表示する関数のように、共通部分だけに依存した処理を1つにまとめられるのが継承設計の実益です。
TypeScript