メインコンテンツへスキップ

no-array-delete

配列の値に対して`delete`演算子を使用することを禁止します。

🔒

拡張 "plugin:@typescript-eslint/strict-type-checked" ESLint設定 で有効にすると、このルールが有効になります。

💡

このルールによって報告される問題の中には、エディタの 提案.

によって手動で修正できるものがあります。

このルールを実行するには 型情報 が必要です。

配列の値に対して`delete`演算子を使用すると、配列の`length`プロパティは影響を受けませんが、指定されたインデックスの要素は削除され、配列に空のスロットが残ります。これは予期せぬ動作につながる可能性があります。MDNドキュメントにあるように、配列から要素を削除する推奨方法は、`Array#splice`メソッドを使用することです。

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

Playgroundでこのルールを試してみてください ↗

declare const arr: number[];

delete arr[0];
Playgroundで開く

オプション

このルールは設定できません。

使用しない場合

配列式でdelete演算子を許可する場合。


型チェックされたlintルールは従来のlintルールよりも強力ですが、型チェックされたlintingの設定も必要です。型チェックされたルールを有効にした後にパフォーマンスの低下が発生する場合は、パフォーマンスに関するトラブルシューティングを参照してください。

リソース