From e3836910efdafd9edf04daed149c9e839c08047e Mon Sep 17 00:00:00 2001 From: Alexander T Date: Sat, 30 May 2020 20:02:54 +0300 Subject: [PATCH] fix(eslint-plugin): [no-unused-expressions] ignore import expressions (#2130) --- packages/eslint-plugin/src/rules/no-unused-expressions.ts | 3 ++- .../eslint-plugin/tests/rules/no-unused-expressions.test.ts | 6 ++++++ packages/typescript-estree/src/ts-estree/ts-estree.ts | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/eslint-plugin/src/rules/no-unused-expressions.ts b/packages/eslint-plugin/src/rules/no-unused-expressions.ts index 9977f10c140..151b8611c24 100644 --- a/packages/eslint-plugin/src/rules/no-unused-expressions.ts +++ b/packages/eslint-plugin/src/rules/no-unused-expressions.ts @@ -26,7 +26,8 @@ export default util.createRule({ ExpressionStatement(node): void { if ( node.directive || - node.expression.type === AST_NODE_TYPES.OptionalCallExpression + node.expression.type === AST_NODE_TYPES.OptionalCallExpression || + node.expression.type === AST_NODE_TYPES.ImportExpression ) { return; } diff --git a/packages/eslint-plugin/tests/rules/no-unused-expressions.test.ts b/packages/eslint-plugin/tests/rules/no-unused-expressions.test.ts index a50d74f6b74..d1b782348d8 100644 --- a/packages/eslint-plugin/tests/rules/no-unused-expressions.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unused-expressions.test.ts @@ -65,6 +65,12 @@ ruleTester.run('no-unused-expressions', rule, { return null; } `, + ` + import('./foo'); + `, + ` + import('./foo').then(() => {}); + `, ], invalid: [ { diff --git a/packages/typescript-estree/src/ts-estree/ts-estree.ts b/packages/typescript-estree/src/ts-estree/ts-estree.ts index d57ce09d531..48ce05a6c29 100644 --- a/packages/typescript-estree/src/ts-estree/ts-estree.ts +++ b/packages/typescript-estree/src/ts-estree/ts-estree.ts @@ -359,7 +359,8 @@ export type Expression = | SpreadElement | TSAsExpression | TSUnaryExpression - | YieldExpression; + | YieldExpression + | ImportExpression; export type ExpressionWithTypeArguments = | TSClassImplements | TSInterfaceHeritage;