Code Fix

上級ジェネリクスのextends制約を満たさない型を渡すとエラーになる › パターン1

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

<T extends { length: number }>のように書くと、Tには「lengthプロパティを持つ型」しか渡せなくなります。

 1  function getLength<T extends { length: number }>(item: T): number {
 2    return item.length;
 3  }
 4  console.log(getLength(_______));
                             ^
main.ts(4,23): error TS2345: Argument of type 'number' is not assignable to parameter of type '{ length: number; }'.

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

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

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

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

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

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