Kakera.link

jQueryからTypescriptへ 9

1.7 TypeScriptのジェネリクスについて

前回、TypeScriptの高度な型について学びました。今回は、TypeScriptのジェネリクスについて詳しく見ていきましょう。

1.7.1 ジェネリクスとは

ジェネリクスは、型の再利用性を高めるための機能です。ジェネリクスを使用すると、異なる型で動作する一連の関数やクラスを一つにまとめることができます。

1.7.2 ジェネリクスの基本的な使用方法

ジェネリクスは、関数やクラスの定義時に型パラメータを指定することで使用します。型パラメータは、通常大文字のTを使って表します。

function getArray<T>(items : T[] ) : T[] {
    return new Array<T>().concat(items);
}

let numArray = getArray<number>([1, 2, 3, 4]);
let strArray = getArray<string>(["hello", "world"]);

上記のコードでは、getArray関数はジェネリクスを使用しており、任意の型Tの配列を受け取り、同じ型Tの配列を返します。getArray関数を呼び出す際には、具体的な型(この場合はnumberstring)を指定します。

1.7.3 ジェネリクスの制約

ジェネリクスは非常に柔軟な機能ですが、あまりにも自由度が高すぎると型安全性が損なわれる可能性があります。そのため、TypeScriptではジェネリクスに制約を設けることができます。

interface Lengthwise {
    length: number;
}

function loggingIdentity<T extends Lengthwise>(arg: T): T {
    console.log(arg.length);
    return arg;
}

上記のコードでは、loggingIdentity関数はLengthwiseインターフェースを満たす型Tのみを受け入れます。

以上が、TypeScriptのジェネリクスについての基本的な説明です。次回は、TypeScriptの高度なジェネリクスについて学んでいきましょう。

最終更新: 2023/07/16 04:24