typescript/no-array-delete 正确性
它的作用
此规则禁止对数组值使用 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;如何使用
要通过配置文件或 CLI 启用 此规则,可以使用:
json
{
"rules": {
"typescript/no-array-delete": "error"
}
}bash
oxlint --type-aware --deny typescript/no-array-delete