上級 › ジェネリクスのextends制約を満たさない型を渡すとエラーになる › パターン1
ジェネリクスのextends制約を満たさない型を渡すとエラーになる
<T extends { length: number }>のように書くと、Tには「lengthプロパティを持つ型」しか渡せなくなります。
1 function getLength<T extends { length: number }>(item: T): number { 2 return item.length; 3 } 4 console.log(getLength(_______)); ^
main.ts(4,23): error TS2345: Argument of type 'number' is not assignable to parameter of type '{ length: number; }'.
空欄を埋めてコンパイルを通す
getLengthはlengthプロパティを持つ型しか受け付けません。numberにはlengthが無いため制約違反になります。
次の問題