diff --git a/packages/eslint-plugin/src/rules/no-unnecessary-type-arguments.ts b/packages/eslint-plugin/src/rules/no-unnecessary-type-arguments.ts index e900a0b0707..b68538e41d6 100644 --- a/packages/eslint-plugin/src/rules/no-unnecessary-type-arguments.ts +++ b/packages/eslint-plugin/src/rules/no-unnecessary-type-arguments.ts @@ -51,7 +51,7 @@ export default util.createRule<[], MessageIds>({ // TODO: would like checker.areTypesEquivalent. https://github.com/Microsoft/TypeScript/issues/13502 if ( - !param.default || + !param?.default || param.default.getText() !== sourceCode.getText(arg) ) { return; diff --git a/packages/eslint-plugin/tests/rules/no-unnecessary-type-arguments.test.ts b/packages/eslint-plugin/tests/rules/no-unnecessary-type-arguments.test.ts index 51c1acf3285..ca81774d3dd 100644 --- a/packages/eslint-plugin/tests/rules/no-unnecessary-type-arguments.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unnecessary-type-arguments.test.ts @@ -17,6 +17,7 @@ ruleTester.run('no-unnecessary-type-arguments', rule, { valid: [ `f<>();`, `f();`, + `expect().toBe<>();`, `class Foo extends Bar<> {}`, `class Foo extends Bar {}`, `class Foo implements Bar<> {}`,