Skip to main content

no-unnecessary-type-arguments

Disallow type arguments that are equal to the default.

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

Attributes

  • Included in configs
    • ✅ Recommended
    • 🔒 Strict
  • Fixable
    • 🔧 Automated Fixer
    • 🛠 Suggestion Fixer
  • 💭 Requires type information

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:

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> {}

Options

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

This rule is not configurable.