移至主要內容

no-array-delete

禁止對陣列值使用 delete 運算子。

💡

這個規則報告的一些問題可以由編輯手動修復 建議.

💭

此規則需要 類型資訊 來執行。

當對陣列值使用 delete 運算子時,陣列的 length 屬性不受影響,但指定的索引處的元素會被移除並在陣列中留下一個空槽。這很可能會導致意外的行為。如 MDN 文件 所述,建議從陣列中移除元素的方法是使用 Array#splice 方法。

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

在遊樂場中嘗試這個規則 ↗

範例

declare const arr: number[];

delete arr[0];
在遊樂場中開啟

選項

此規則無法設定。

何時不要使用

當您想允許 delete 運算子與陣列運算式一起使用時。


類型檢查的規則比傳統規則更強大,但需要設定類型檢查的規則。如果您在啟用類型檢查的規則後遇到效能下降,請參閱效能疑難排解

資源