typescript/no-mixed-enums 細部にこだわる
何を実行するか
このルールは、文字列メンバーと数値メンバーを同時に持つ列挙型(enum)の使用を禁止します。
なぜ問題なのか
TypeScript の列挙型は、文字列、数値、または計算されたメンバーを持つことができます。同じ列挙型内に文字列と数値のメンバーを混在させると、TypeScript が列挙型をコンパイルする方法により、混乱や予期しないランタイム動作が生じる可能性があります。
例
このルールに対して不正なコードの例:
ts
enum Status {
Open = 1,
Closed = "closed",
}
enum Direction {
Up = "up",
Down = 2,
Left = "left",
Right = 4,
}このルールに対して正しいコードの例:
ts
// すべて数値
enum Status {
Open = 1,
Closed = 2,
}
// すべて文字列
enum Direction {
Up = "up",
Down = "down",
Left = "left",
Right = "right",
}
// 自動インクリメントされた数値
enum Color {
Red,
Green,
Blue,
}使用方法
設定ファイルまたは CLI でこのルールを有効化するには、次のようにします:
json
{
"rules": {
"typescript/no-mixed-enums": "error"
}
}bash
oxlint --type-aware --deny typescript/no-mixed-enums