Skip to content

noEmptyTypeParameters (since v1.5.0)

Diagnostic Category: lint/complexity/noEmptyTypeParameters

Disallow empty type parameters in type aliases and interfaces.

TypeScript permits the use of empty type parameter lists in type alias and interface declarations; however, this practice is generally discouraged. Allowing empty type parameter lists can lead to unclear or ambiguous code, where the intention of the generic type is not self-evident. This rule disallows empty type parameter lists in type alias and interface declarations.

interface Foo<> {}
complexity/noEmptyTypeParameters.js:1:14 lint/complexity/noEmptyTypeParameters ━━━━━━━━━━━━━━━━━━━━━

   Using an empty type parameter list is confusing.
  
  > 1 │ interface Foo<> {}
                ^^
    2 │ 
  
   Remove the empty type parameter list or add a type parameter.
  
type Bar<> = {};
complexity/noEmptyTypeParameters.js:1:9 lint/complexity/noEmptyTypeParameters ━━━━━━━━━━━━━━━━━━━━━━

   Using an empty type parameter list is confusing.
  
  > 1 │ type Bar<> = {};
           ^^
    2 │ 
  
   Remove the empty type parameter list or add a type parameter.
  
interface Foo {}
type Foo<T> = {
bar: T;
}