跳至主要内容

一致的泛型构造函数

强制在类型注解或构造函数调用的构造函数名称上指定泛型类型参数。

🎨

"plugin:@typescript-eslint/stylistic" 中扩展 ESLint 配置 将启用此规则。

🔧

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

在构造泛型类时,可以在左侧(作为类型注解)或右侧(作为构造函数调用的一部分)指定类型参数。

// Left-hand side
const map: Map<string, number> = new Map();

// Right-hand side
const map = new Map<string, number>();

此规则确保类型参数始终出现在声明的一侧。始终保持在一侧可以提高代码可读性。

当声明的两侧都有类型参数或两侧都没有类型参数时,此规则永远不会报告。如果类型注解和构造函数的名称不匹配,它也不会报告。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/consistent-generic-constructors": "error"
}
};

在游乐场中尝试此规则 ↗

选项

此规则接受以下选项

type Options = ['constructor' | 'type-annotation'];

const defaultOptions: Options = ['constructor'];
  • constructor (默认):仅出现在类型注解上的类型参数将被禁止。
  • type-annotation:仅出现在构造函数上的类型参数将被禁止。

constructor

const map: Map<string, number> = new Map();
const set: Set<string> = new Set();
在游乐场中打开

type-annotation

const map = new Map<string, number>();
const set = new Set<string>();
在游乐场中打开

何时不使用它

如果您不想强制执行一种通用的构造函数风格,可以关闭此规则。

但是,请记住,不一致的风格可能会损害项目的可读性。我们建议为该规则选择一个最适合您的项目的选项。

资源