Skip to content

Commit 42a48de

Browse files
fix(eslint-plugin): [no-unnec-type-arg] throwing on call/new expr (#1217)
Co-authored-by: Brad Zacher <brad.zacher@gmail.com>
1 parent ba89168 commit 42a48de

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

packages/eslint-plugin/src/rules/no-unnecessary-type-arguments.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,11 @@ function getTypeParametersFromNode(
114114
return getTypeParametersFromType(node.typeName, checker);
115115
}
116116

117-
return getTypeParametersFromCall(node, checker);
117+
if (ts.isCallExpression(node) || ts.isNewExpression(node)) {
118+
return getTypeParametersFromCall(node, checker);
119+
}
120+
121+
return undefined;
118122
}
119123

120124
function getTypeParametersFromType(

packages/eslint-plugin/tests/rules/no-unnecessary-type-arguments.test.ts

+14
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ ruleTester.run('no-unnecessary-type-arguments', rule, {
5353
`declare const C: unknown;
5454
class D<TD = number> extends C { }`,
5555
`let a: A<number>`,
56+
`class Foo<T> {}
57+
const foo = new Foo<number>();`,
58+
`type Foo<T> = import('foo').Foo<T>;`,
5659
],
5760
invalid: [
5861
{
@@ -123,5 +126,16 @@ ruleTester.run('no-unnecessary-type-arguments', rule, {
123126
output: `interface I<T = number> { }
124127
class Impl implements I { }`,
125128
},
129+
{
130+
code: `class Foo<T = number> {}
131+
const foo = new Foo<number>();`,
132+
errors: [
133+
{
134+
messageId: 'unnecessaryTypeParameter',
135+
},
136+
],
137+
output: `class Foo<T = number> {}
138+
const foo = new Foo();`,
139+
},
126140
],
127141
});

0 commit comments

Comments
 (0)