Skip to content

Latest commit

 

History

History
72 lines (49 loc) · 1.24 KB

no-unnecessary-type-arguments.md

File metadata and controls

72 lines (49 loc) · 1.24 KB

no-unnecessary-type-arguments

Disallows type arguments that are equal to the default.

Warns if an explicitly specified type argument is the default for that type parameter.

Rule Details

Type parameters in TypeScript may specify a default value. For example:

function f<T = number>() {}

It is redundant to provide an explicit type parameter equal to that default.

Examples of code for this rule:

❌ Incorrect

function f<T = number>() {}
f<number>();

function g<T = number, U = string>() {}
g<string, string>();

class C<T = number> {}
function h(c: C<number>) {}
new C<number>();
class D extends C<number> {}

interface I<T = number> {}
class Impl implements I<number> {}

✅ Correct

function f<T = number>() {}
f<string>();

function g<T = number, U = string>() {}
g<number, number>();

class C<T = number> {}
new C<string>();
class D extends C<string> {}

interface I<T = number> {}
class Impl implements I<string> {}

Options

// .eslintrc.json
{
  "rules": {
    "@typescript-eslint/no-unnecessary-type-arguments": "warn"
  }
}

This rule is not configurable.

Related To