diff --git a/packages/eslint-plugin/src/rules/strict-boolean-expressions.ts b/packages/eslint-plugin/src/rules/strict-boolean-expressions.ts index e67e4d1f687f..1b0d0de9462c 100644 --- a/packages/eslint-plugin/src/rules/strict-boolean-expressions.ts +++ b/packages/eslint-plugin/src/rules/strict-boolean-expressions.ts @@ -150,7 +150,7 @@ export default util.createRule({ ForStatement: assertTestExpressionContainsBoolean, IfStatement: assertTestExpressionContainsBoolean, WhileStatement: assertTestExpressionContainsBoolean, - LogicalExpression: assertLocalExpressionContainsBoolean, + 'LogicalExpression[operator!="??"]': assertLocalExpressionContainsBoolean, 'UnaryExpression[operator="!"]': assertUnaryExpressionContainsBoolean, }; }, diff --git a/packages/eslint-plugin/tests/rules/strict-boolean-expressions.test.ts b/packages/eslint-plugin/tests/rules/strict-boolean-expressions.test.ts index c95228b67430..f1b98a1c9411 100644 --- a/packages/eslint-plugin/tests/rules/strict-boolean-expressions.test.ts +++ b/packages/eslint-plugin/tests/rules/strict-boolean-expressions.test.ts @@ -159,11 +159,11 @@ ruleTester.run('strict-boolean-expressions', rule, { { options: [{ ignoreRhs: true }], code: ` -const obj = {}; -const bool = false; -const boolOrObj = bool || obj; -const boolAndObj = bool && obj; -`, + const obj = {}; + const bool = false; + const boolOrObj = bool || obj; + const boolAndObj = bool && obj; + `, }, { options: [{ allowNullable: true }], @@ -174,6 +174,10 @@ const boolAndObj = bool && obj; const f4 = (x?: false) => x ? 1 : 0; `, }, + ` + declare const x: string | null; + y = x ?? 'foo'; + `, ], invalid: [