Skip to content
← Back to rules

typescript/prefer-literal-enum-member 制限

何をするのか

明示的な列挙型の値は、文字列、数値、ブール値など、リテラル値のみに限定される必要があります。

なぜ悪いのか

TypeScript では、列挙型メンバーの値としてさまざまな種類の有効な JavaScript 式を使用できます。 しかし、列挙型は独自のスコープを生成するため、各列挙型メンバーがそのスコープ内の変数になるので、開発者が結果として得られる値に驚くことがよくあります。

このルールに違反する誤りのあるコードの例:

ts
const imOutside = 2;
const b = 2;
enum Foo {
  outer = imOutside,
  a = 1,
  b = a,
  c = b,
}

設定

このルールは、以下のプロパティを持つ設定オブジェクトを受け取ります:

allowBitwiseExpressions

type: boolean

デフォルト: false

true に設定された場合、列挙型メンバーの初期化式にビット演算子式を許可します。 これにはビット単位の否定(~)、論理積(&)、論理和(|)、排他的論理和(^)、シフト演算子(<<, >>, >>>)が含まれます。

使用方法

このルールを設定ファイルまたは CLI で有効にするには、以下のように使用できます:

json
{
  "rules": {
    "typescript/prefer-literal-enum-member": "error"
  }
}
bash
oxlint --deny typescript/prefer-literal-enum-member

参照