Code Fix

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

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

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

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

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

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

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