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