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