diff --git a/packages/eslint-plugin/src/rules/no-unsafe-enum-comparison.ts b/packages/eslint-plugin/src/rules/no-unsafe-enum-comparison.ts index 0a068b577e7..888924e3bc8 100644 --- a/packages/eslint-plugin/src/rules/no-unsafe-enum-comparison.ts +++ b/packages/eslint-plugin/src/rules/no-unsafe-enum-comparison.ts @@ -63,7 +63,7 @@ export default util.createRule({ } return { - 'BinaryExpression[operator=/=|<|>/]'( + 'BinaryExpression[operator=/^[<>!=]?={0,2}$/]'( node: TSESTree.BinaryExpression, ): void { const left = getTypeFromNode(node.left); diff --git a/packages/eslint-plugin/tests/rules/no-unsafe-enum-comparison.test.ts b/packages/eslint-plugin/tests/rules/no-unsafe-enum-comparison.test.ts index adb3630354e..c31b742160c 100644 --- a/packages/eslint-plugin/tests/rules/no-unsafe-enum-comparison.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unsafe-enum-comparison.test.ts @@ -292,6 +292,20 @@ ruleTester.run('strict-enums-comparison', rule, { num === someFunction; mixed === someFunction; `, + ` + enum Fruit { + Apple, + } + + const bitShift = 1 << Fruit.Apple; + `, + ` + enum Fruit { + Apple, + } + + const bitShift = 1 >> Fruit.Apple; + `, ], invalid: [ {