Code Fix

上級ジェネリクスの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; }'.

空欄を埋めてコンパイルを通す

広告
広告スロット(未設定)

ジェネリクスのextends制約を満たさない型を渡すとエラーになる

制約を満たさない型(例えばnumber)を渡すと、呼び出し時点でエラーになります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)