跳至主要内容

禁止使用不必要的类型参数

禁止类型参数等于默认值。

🔧

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

💭

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

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

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

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

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-unnecessary-type-arguments": "error"
}
};

在游乐场中尝试此规则 ↗

示例

function f<T = number>() {}
f<number>();
在游乐场中打开
function g<T = number, U = string>() {}
g<string, string>();
在游乐场中打开
class C<T = number> {}
new C<number>();

class D extends C<number> {}
在游乐场中打开
interface I<T = number> {}
class Impl implements I<number> {}
在游乐场中打开

选项

此规则不可配置。

何时不使用它

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


类型检查 lint 规则比传统的 lint 规则更强大,但也需要配置 类型检查 lint。如果您在启用类型检查规则后遇到性能下降,请参阅 性能故障排除

资源