中級 › ジェネリクスの型引数を明示すると戻り値の型チェックが効く › パターン1
ジェネリクスの型引数を明示すると戻り値の型チェックが効く
function firstOf<T>(items: T[]): Tのようなジェネリック関数は、呼び出し時に指定した型引数(例: firstOf<number>)に応じて戻り値の型が決まります。
1 function firstOf<T>(items: T[]): T { 2 return items[0]; 3 } 4 const result: ______ = firstOf<number>([1, 2, 3]); ^ 5 console.log(result);
main.ts(4,7): error TS2322: Type 'number' is not assignable to type 'string'.
空欄を埋めてコンパイルを通す
firstOf<number>を指定した時点で戻り値の型はnumberに決まります。string型の変数では受け取れません。
次の問題