一致的索引对象风格
要求或禁止使用
Record
类型。
🎨
在 "plugin:@typescript-eslint/stylistic"
中扩展 ESLint 配置文件 可以启用此规则。
🔧
此规则报告的一些问题可以通过 --fix
ESLint 命令行选项 自动修复。
TypeScript 支持使用索引签名定义任意对象键。TypeScript 还内置了一个名为 Record
的类型来创建一个仅定义索引签名的空对象。例如,以下类型是相等的
interface Foo {
[key: string]: unknown;
}
type Foo = {
[key: string]: unknown;
};
type Foo = Record<string, unknown>;
保持一致的声明形式可以提高代码可读性。
.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/consistent-indexed-object-style": "error"
}
};
在游乐场中尝试此规则 ↗
选项
此规则接受以下选项
type Options = ['index-signature' | 'record'];
const defaultOptions: Options = ['record'];
"record"
(默认):仅允许Record
类型。"index-signature"
:仅允许索引签名。
record
- ❌ 错误
- ✅ 正确
index-signature
- ❌ 错误
- ✅ 正确
何时不使用它
此规则纯粹是用于维护项目一致性的风格规则。如果您不想为索引对象类型保持一致的风格,可以将其关闭。
但是,请记住,不一致的风格可能会损害项目的可读性。我们建议为该规则选择一个最适合您的项目的选项。