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