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);
// またはフィルターメソッドを使用
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