← TypeScript コース
43. ジェネリッククラス — 型をパラメータに持つクラス
クラスにも型引数を持たせられます。class Stack<T> と書くと、中身の型 T を使い手が決められる「型安全な入れ物」を作れます。push する値も pop で取り出す値も T 型として扱われるため、数値用・文字列用のスタックを別々に書かずに、1つの定義から作れます。
実務では、スタック・キュー・簡単なキャッシュなど「同じ仕組みで中身の型だけ違う」データ構造をジェネリッククラスにします。利用時に Stack<number> のように型を指定すれば、その後の操作すべてに型チェックが効き、別の型の値を誤って入れるミスを防げます。
下のコードは、数値専用にも文字列専用にもなるスタックを1つのクラスで表した例です。型引数を変えるだけで中身の型が切り替わる様子を確かめてください。
▶ サンプルコードを実行してみよう(自由に書き換えてOK)
TypeScript