From 535db3bf27ee1d7824ada9acd91d1b7833064628 Mon Sep 17 00:00:00 2001 From: Hailey Date: Tue, 10 Nov 2020 22:36:13 -0800 Subject: [PATCH] fix(eslint-plugin): [no-unsafe-member-access] ignore MemberExpression's whose parents are either TSClassImplements or TSInterfaceHeritage (#2753) --- packages/eslint-plugin/src/rules/no-unsafe-member-access.ts | 3 ++- .../tests/rules/no-unsafe-member-access.test.ts | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/eslint-plugin/src/rules/no-unsafe-member-access.ts b/packages/eslint-plugin/src/rules/no-unsafe-member-access.ts index e0bb605f0f1..b326c754136 100644 --- a/packages/eslint-plugin/src/rules/no-unsafe-member-access.ts +++ b/packages/eslint-plugin/src/rules/no-unsafe-member-access.ts @@ -71,7 +71,8 @@ export default util.createRule({ } return { - MemberExpression: checkMemberExpression, + // ignore MemberExpression if it's parent is TSClassImplements or TSInterfaceHeritage + ':not(TSClassImplements, TSInterfaceHeritage) > MemberExpression': checkMemberExpression, 'MemberExpression[computed = true] > *.property'( node: TSESTree.Expression, ): void { diff --git a/packages/eslint-plugin/tests/rules/no-unsafe-member-access.test.ts b/packages/eslint-plugin/tests/rules/no-unsafe-member-access.test.ts index bf6ff85c121..a9c21f8712b 100644 --- a/packages/eslint-plugin/tests/rules/no-unsafe-member-access.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unsafe-member-access.test.ts @@ -66,6 +66,12 @@ function foo(x?: string[]) { x?.[(1 as any)++]; } `, + ` +class B implements FG.A {} + `, + ` +interface B extends FG.A {} + `, ], invalid: [ ...batchedSingleLineTests({