Skip to main content

no-unnecessary-type-arguments

Disallow type arguments that are equal to the default.

🔒

ESLint 配置 中扩展"plugin:@typescript-eslint/strict-type-checked" 可启用此规则。

🔧

此规则报告的一些问题可通过 --fix ESLint 命令行选项自动修复

💭

该规则需要 类型信息 才能运行。


TypeScript 中的类型参数可以指定默认值。 例如:

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

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

提供等于默认值的显式类型参数是多余的: 例如 调用 f<number>(...)。 此规则报告何时显式指定的类型参数是该类型参数的默认值。

英:It is redundant to provide an explicit type parameter equal to that default: e.g. calling f<number>(...). This rule reports when an explicitly specified type argument is the default for that type parameter.

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-unnecessary-type-arguments": "error"
}
};
在线运行试试这个规则 ↗

示例

function f<T = number>() {}
f<number>();
Open in Playground
function g<T = number, U = string>() {}
g<string, string>();
Open in Playground
class C<T = number> {}
new C<number>();

class D extends C<number> {}
Open in Playground
interface I<T = number> {}
class Impl implements I<number> {}
Open in Playground

何时不使用它

如果你更喜欢显式指定类型参数,即使它们等于默认值,也可以跳过此规则。

英:If you prefer explicitly specifying type parameters even when they are equal to the default, you can skip this rule.

选项

该规则不可配置。

资源