Code Fix

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

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

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

 1  enum Mode {
 2    Auto,
 3    Manual,
 4  }
 5  function setMode(m: Mode): string {
 6    return `mode=${m}`;
 7  }
 8  console.log(setMode(_________));
                            ^
main.ts(8,21): error TS2345: Argument of type '"Auto"' is not assignable to parameter of type 'Mode'.

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

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

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

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

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

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