Code Fix

中級文字列リテラルをenum型の引数に渡すとエラーになる理由 › パターン3

文字列リテラルをenum型の引数に渡すとエラーになる理由

enumで定義した型は、見た目が近い文字列リテラルであっても別の型として扱われます。

 1  enum Level {
 2    Low,
 3    High,
 4  }
 5  function setLevel(l: Level): string {
 6    return `level=${l}`;
 7  }
 8  console.log(setLevel(_________));
                             ^
main.ts(8,22): error TS2345: Argument of type '"Low"' is not assignable to parameter of type 'Level'.

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

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

文字列リテラルをenum型の引数に渡すとエラーになる理由

enumのメンバー名と同じ文字列を渡しても、enum型そのものの値でなければ代入・引数として受け付けられません。

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

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