TypeScriptにおけるジェネリック型変数
ジェネリック型の関数を作成する際、 TypeScriptはその本文内での型変数の 正しい使用を強制します。 したがって、関数に渡される各パラメータの 挙動を、利用可能なすべての型の観点から 考察する必要があります。
ジェネリック型変数の長さを求める関数を 作成してみましょう:
function myFunc <T> (data: T): T {
console.log(data.length); // エラー
return data;
}
このエラーは、すべての型が長さを 持っているわけではないために発生します。 例えば、ブール値に対してそのような操作は 不可能です。しかし、型を配列として 明示すれば、コードは正しく動作します。 結局のところ、型に関わらずすべての配列には 長さがあるからです:
function myFunc <T> (data: T[]): T[] {
console.log(data.length); // 3
return data;
}
console.log(myFunc([1, 3, 5])); // [ 1, 3, 5 ]
ジェネリック型の配列のすべての要素を 反復処理し、コンソールに出力する関数を 記述してください。