diff --git a/packages/eslint-plugin/src/rules/no-unsafe-call.ts b/packages/eslint-plugin/src/rules/no-unsafe-call.ts index 13cabc87d92..66f66448c28 100644 --- a/packages/eslint-plugin/src/rules/no-unsafe-call.ts +++ b/packages/eslint-plugin/src/rules/no-unsafe-call.ts @@ -41,7 +41,7 @@ export default util.createRule<[], MessageIds>({ } return { - ':matches(CallExpression, OptionalCallExpression) > :not(Import)'( + ':matches(CallExpression, OptionalCallExpression) > :not(Import).callee'( node: Exclude, ): void { checkCall(node, node, 'unsafeCall'); diff --git a/packages/eslint-plugin/tests/rules/no-unsafe-call.test.ts b/packages/eslint-plugin/tests/rules/no-unsafe-call.test.ts index a51273c9b9c..bc7b6c7d086 100644 --- a/packages/eslint-plugin/tests/rules/no-unsafe-call.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unsafe-call.test.ts @@ -21,6 +21,11 @@ ruleTester.run('no-unsafe-call', rule, { 'new Map()', 'String.raw`foo`', 'const x = import("./foo");', + // https://github.com/typescript-eslint/typescript-eslint/issues/1825 + ` + let foo: any = 23; + String(foo); // ERROR: Unsafe call of an any typed value + `, ], invalid: [ ...batchedSingleLineTests({