typescript/no-array-delete Correctness
它的作用
此规则不允许在数组值上使用 delete 运算符。
为什么这不好?
当在数组上使用 delete 运算符时,元素实际上并不会被移除,而是会将数组槽位变为 undefined。这通常不是预期行为。相反,你应该使用诸如 Array.prototype.splice() 之类的方法来正确地从数组中移除元素。
示例
此规则的错误代码示例:
ts
declare const arr: number[];
delete arr[0];此规则的正确代码示例:
ts
declare const arr: number[];
arr.splice(0, 1);
// 或者使用 filter
const filteredArr = arr.filter((_, index) => index !== 0);
// 对对象使用 delete 是允许的
declare const obj: { a?: number };
delete obj.a;如何使用
To enable this rule using the config file or in the CLI, you can use:
json
{
"options": {
"typeAware": true
},
"rules": {
"typescript/no-array-delete": "error"
}
}ts
import { defineConfig } from "oxlint";
export default defineConfig({
options: { typeAware: true },
rules: {
"typescript/no-array-delete": "error",
},
});bash
oxlint --type-aware --deny typescript/no-array-delete版本
此规则添加于 v1.12.0。
