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で開くdeclare const arr: number[];
arr.splice(0, 1);
Playgroundで開くオプション
このルールは設定できません。
使用しない場合
配列式でdelete演算子を許可する場合。
型チェックされたlintルールは従来のlintルールよりも強力ですが、型チェックされたlintingの設定も必要です。型チェックされたルールを有効にした後にパフォーマンスの低下が発生する場合は、パフォーマンスに関するトラブルシューティングを参照してください。