跳至主要内容

禁止使用数组删除

禁止对数组值使用 delete 运算符。

🔒

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

💡

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

💭

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

当使用 delete 运算符和数组值时,数组的 length 属性不会受到影响,但指定索引处的元素将被删除,并在数组中留下一个空槽。这可能会导致意外行为。如 MDN 文档 中所述,从数组中删除元素的推荐方法是使用 Array#splice 方法。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-array-delete": "error"
}
};

在游乐场中尝试此规则 ↗

示例

declare const arr: number[];

delete arr[0];
在游乐场中打开

选项

此规则不可配置。

何时不使用它

当您想要允许使用 delete 运算符和数组表达式时。


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

资源