{ }
+ class D extends C { }`,
+ `declare const C: any;
+ class D | extends C { }`,
+ `declare const C: unknown;
+ class D | extends C { }`,
+ ],
+ invalid: [
+ {
+ code: `function f() { }
+ f();`,
+ errors: [
+ {
+ column: 11,
+ messageId: 'unnecessaryTypeParameter',
+ },
+ ],
+ output: `function f() { }
+ f();`,
+ },
+ {
+ code: `function g() { }
+ g();`,
+ errors: [
+ {
+ column: 19,
+ messageId: 'unnecessaryTypeParameter',
+ },
+ ],
+ output: `function g() { }
+ g();`,
+ },
+ {
+ code: `class C { }
+ function h(c: C) { }`,
+ errors: [
+ {
+ messageId: 'unnecessaryTypeParameter',
+ },
+ ],
+ output: `class C { }
+ function h(c: C) { }`,
+ },
+ {
+ code: `class C { }
+ new C();`,
+ errors: [
+ {
+ messageId: 'unnecessaryTypeParameter',
+ },
+ ],
+ output: `class C { }
+ new C();`,
+ },
+ {
+ code: `class C { }
+ class D extends C { }`,
+ errors: [
+ {
+ messageId: 'unnecessaryTypeParameter',
+ },
+ ],
+ output: `class C { }
+ class D extends C { }`,
+ },
+ {
+ code: `interface I { }
+ class Impl implements I { }`,
+ errors: [
+ {
+ messageId: 'unnecessaryTypeParameter',
+ },
+ ],
+ output: `interface I { }
+ class Impl implements I { }`,
+ },
+ ],
+});
|