Code Fix

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

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

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

 1  enum Color {
 2    Red,
 3    Blue,
 4  }
 5  function paint(c: Color): string {
 6    return `color=${c}`;
 7  }
 8  console.log(paint(_________));
                          ^
main.ts(8,19): error TS2345: Argument of type '"Red"' is not assignable to parameter of type 'Color'.

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

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

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

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

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

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