Dev Study
TypeScript コース

26. ジェネリックな型定義

関数だけでなく、type や interface にも型引数を持たせられます。type Box<T> = { value: T } と定義すれば、Box<number> や Box<string> のように、中身の型だけ違う型を1つの定義から作れます。

実務で頻出するのは API レスポンスの「共通の入れ物」です。どのレスポンスも ok と data を持つが data の中身だけ違う、という構造を ApiResponse<T> のように1回定義すれば、エンドポイントごとに型を書き直す必要がなくなります。

実は今まで使ってきた number[](Array<number>)もジェネリックな型です。「外側の構造は同じで、中身の型が変わる」ものを見つけたら、ジェネリックな型定義の出番です。

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

TypeScript
公式ドキュメントで詳しく ↗