跳至主要内容

禁止不必要的类型约束

禁止对泛型类型进行不必要的约束。

💡

此规则报告的一些问题可以通过编辑器手动修复 建议

TypeScript 中的泛型类型参数 (<T>) 可以使用 extends 关键字 进行“约束”。当没有提供 extends 时,类型参数默认约束为 unknown。因此,从 anyunknown 扩展是多余的。

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

在游乐场中尝试此规则 ↗

示例

interface FooAny<T extends any> {}

interface FooUnknown<T extends unknown> {}

type BarAny<T extends any> = {};

type BarUnknown<T extends unknown> = {};

class BazAny<T extends any> {
quxAny<U extends any>() {}
}

const QuuxAny = <T extends any>() => {};

function QuuzAny<T extends any>() {}
在游乐场中打开

选项

此规则不可配置。

何时不使用它

如果您不关心类型约束的具体样式,或者根本不使用它们,那么您将不需要此规则。

资源