From e4c1834c7c5934332dd1d58c09018453568c4889 Mon Sep 17 00:00:00 2001 From: Brad Zacher Date: Wed, 3 Jun 2020 10:21:24 -0700 Subject: [PATCH] fix(eslint-plugin): [no-extra-non-null-assertion] dont report for assertions not followed by the optional chain (#2167) --- .../eslint-plugin/src/rules/no-extra-non-null-assertion.ts | 6 +++--- .../tests/rules/no-extra-non-null-assertion.test.ts | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/eslint-plugin/src/rules/no-extra-non-null-assertion.ts b/packages/eslint-plugin/src/rules/no-extra-non-null-assertion.ts index def33bbb827..62b317e30cb 100644 --- a/packages/eslint-plugin/src/rules/no-extra-non-null-assertion.ts +++ b/packages/eslint-plugin/src/rules/no-extra-non-null-assertion.ts @@ -1,5 +1,5 @@ -import * as util from '../util'; import { TSESTree } from '@typescript-eslint/experimental-utils'; +import * as util from '../util'; export default util.createRule({ name: 'no-extra-non-null-assertion', @@ -32,8 +32,8 @@ export default util.createRule({ return { 'TSNonNullExpression > TSNonNullExpression': checkExtraNonNullAssertion, - 'OptionalMemberExpression > TSNonNullExpression': checkExtraNonNullAssertion, - 'OptionalCallExpression > TSNonNullExpression.callee': checkExtraNonNullAssertion, + 'OptionalMemberExpression[optional = true] > TSNonNullExpression': checkExtraNonNullAssertion, + 'OptionalCallExpression[optional = true] > TSNonNullExpression.callee': checkExtraNonNullAssertion, }; }, }); diff --git a/packages/eslint-plugin/tests/rules/no-extra-non-null-assertion.test.ts b/packages/eslint-plugin/tests/rules/no-extra-non-null-assertion.test.ts index 02da29353bf..8afbbcf072f 100644 --- a/packages/eslint-plugin/tests/rules/no-extra-non-null-assertion.test.ts +++ b/packages/eslint-plugin/tests/rules/no-extra-non-null-assertion.test.ts @@ -27,6 +27,12 @@ function foo(bar?: { n: number }) { } `, }, + // https://github.com/typescript-eslint/typescript-eslint/issues/2166 + { + code: ` +checksCounter?.textContent!.trim(); + `, + }, ], invalid: [ {