From df953388913b22d45242e65ce231d92a8b8a0080 Mon Sep 17 00:00:00 2001 From: Toshihisa Tomatsu Date: Mon, 1 Jun 2020 06:24:53 +0900 Subject: [PATCH] fix(eslint-plugin): [no-var-requires] false negative for TSAsExpression and MemberExpression (#2139) --- .../src/rules/no-var-requires.ts | 4 +++- .../tests/rules/no-var-requires.test.ts | 20 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/eslint-plugin/src/rules/no-var-requires.ts b/packages/eslint-plugin/src/rules/no-var-requires.ts index 66ac16a4e22..af1d5f815fd 100644 --- a/packages/eslint-plugin/src/rules/no-var-requires.ts +++ b/packages/eslint-plugin/src/rules/no-var-requires.ts @@ -34,7 +34,9 @@ export default util.createRule({ node.parent && (node.parent.type === AST_NODE_TYPES.VariableDeclarator || node.parent.type === AST_NODE_TYPES.CallExpression || - node.parent.type === AST_NODE_TYPES.OptionalCallExpression) + node.parent.type === AST_NODE_TYPES.OptionalCallExpression || + node.parent.type === AST_NODE_TYPES.TSAsExpression || + node.parent.type === AST_NODE_TYPES.MemberExpression) ) { context.report({ node, diff --git a/packages/eslint-plugin/tests/rules/no-var-requires.test.ts b/packages/eslint-plugin/tests/rules/no-var-requires.test.ts index 25d53d9ab94..3ae5e243154 100644 --- a/packages/eslint-plugin/tests/rules/no-var-requires.test.ts +++ b/packages/eslint-plugin/tests/rules/no-var-requires.test.ts @@ -102,5 +102,25 @@ ruleTester.run('no-var-requires', rule, { }, ], }, + { + code: "const foo = require('./foo.json') as Foo;", + errors: [ + { + messageId: 'noVarReqs', + line: 1, + column: 13, + }, + ], + }, + { + code: "const foo: Foo = require('./foo.json').default;", + errors: [ + { + messageId: 'noVarReqs', + line: 1, + column: 18, + }, + ], + }, ], });