はじめに
ジェネリクスは非常に強力な機能の一つです。この記事では、TypeScriptでジェネリクスの基本的な概念とその使い方について解説します。
ジェネリクスとは何か?
ジェネリクスは、データ型や関数の動作をパラメータ化する仕組みです。これにより、汎用的なコードを作成し、異なる型や処理に対して再利用性の高いコードを記述することができます。
ジェネリクスの基本構文
ジェネリクスを使用するための基本的な構文は次の通りです。
function functionName<T>(param: T): T {
// ジェネリクスを使用したコード
return param;
}
ここで、<T> は型パラメータを示し、functionName 関数は T 型のパラメータ param を受け取り、同じ型 T を返します。
ジェネリクスの利点
ジェネリクスを使用することで、以下のような利点があります。
- 汎用的なコード: 特定の型に依存しない汎用的なコードを記述できる
- 再利用性の向上: 異なる型や処理に対して同じコードを再利用できる
- 型安全性の確保: コンパイル時に型の整合性が確認されるため、型安全性が向上する
実践例: クラスでのジェネリクスの活用
以下は、ジェネリクスを使用したクラスの例です。
class Container<T> {
value: T;
constructor(value: T) {
this.value = value;
}
getValue(): T {
return this.value;
}
}
let numberContainer = new Container<number>(42);
let stringValue = numberContainer.getValue(); // stringValue の型は number
ここでは、Container クラスがジェネリクスを使用しています。<T> の部分で型パラメータ T を指定し、value プロパティと getValue メソッドの型を T に依存させています。インスタンス化する際に具体的な型を指定することで、異なる型のデータを保持するコンテナを作成できます。
ジェネリクスを使用することで、コードの柔軟性や再利用性を高めることができます。特に、汎用的なデータ構造やアルゴリズムを実装する際に効果的です。