重複する列挙型メンバー値の禁止
列挙型メンバー値の重複を許可しません。
✅
拡張 "plugin:@typescript-eslint/"推奨"
を ESLint設定 に追加すると、このルールが有効になります。
TypeScriptは重複する列挙型メンバー値をサポートしていますが、通常、開発者は同じ列挙型内でメンバーが一意の値を持つことを期待します。重複する値は、追跡が困難なバグにつながる可能性があります。
.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-duplicate-enum-values": "error"
}
};
プレイグラウンドでこのルールを試す ↗
例
このルールは、同じ値に初期化された複数のメンバーを持つ列挙型の定義を禁止します。
このルールは、文字列または数値リテラルで初期化された列挙型メンバーに対してのみ適用されます。初期化子がないメンバー、または式で初期化されたメンバーは、このルールによってチェックされません。
- ❌ 間違い
- ✅ 正解
enum E {
A = 0,
B = 0,
}
プレイグラウンドで開くenum E {
A = 'A',
B = 'A',
}
プレイグラウンドで開くenum E {
A = 0,
B = 1,
}
プレイグラウンドで開くenum E {
A = 'A',
B = 'B',
}
プレイグラウンドで開くオプション
このルールは設定できません。
使用しない場合
非常に特殊なユースケースでは、重複する列挙型メンバーを含めることが役に立つ場合があります。たとえば、列挙型メンバーの名前を変更する場合、スケジュールされたメジャーな破壊的変更まで古い名前を保持すると便利な場合があります。このルールを完全に無効にする代わりに、ESLintの無効化コメントをこれらの特定の状況で使用することを検討してください。
一般的に、プロジェクトで意図的に列挙型メンバー値を複製する場合は、このルールを回避できます。