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