跳至主要内容

prefer-destructuring

要求从数组和/或对象中解构。

🔧

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

💭

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

示例

此规则扩展了基本规则 eslint/prefer-destructuring。它为 TypeScript 中变量声明的类型注解添加了支持。

const x: string = obj.x; // This is incorrect and the auto fixer provides following untyped fix.
// const { x } = obj;
在 Playground 中打开

并且它借助类型检查器更准确地推断绑定模式。

const x = ['a'];
const y = x[0];
在 Playground 中打开

如何使用

.eslintrc.cjs
module.exports = {
"rules": {
// Note: you must disable the base rule as it can report incorrect errors
"prefer-destructuring": "off",
"@typescript-eslint/prefer-destructuring": "error"
}
};

在 playground 中尝试此规则 ↗

选项

参见 eslint/prefer-destructuring 选项

此规则添加了以下选项

type Options = [
BasePreferDestructuringOptions[0],
BasePreferDestructuringOptions[1] & {
enforceForDeclarationWithTypeAnnotation?: boolean;
},
];

const defaultOptions: Options = [
basePreferDestructuringDefaultOptions[0],
{
...basePreferDestructuringDefaultOptions[1],
enforceForDeclarationWithTypeAnnotation: false,
},
];

enforceForDeclarationWithTypeAnnotation

当设置为 true 时,类型注解的变量声明将强制使用解构赋值。

使用 { enforceForDeclarationWithTypeAnnotation: true } 的示例

const x: string = obj.x;
在 Playground 中打开

何时不使用它

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

资源

来自 ESLint 核心 的 ❤️。