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