Skip to content
← Back to rules

unicorn/new-for-builtins 細心

An auto-fix is available for this rule.

何を実行するか

以下の組み込み関数に対して new の使用を強制します:ObjectArrayArrayBufferBigInt64ArrayBigUint64ArrayDataViewDateErrorFloat32ArrayFloat64ArrayFunctionInt8ArrayInt16ArrayInt32ArrayMapWeakMapSetWeakSetPromiseRegExpUint8ArrayUint16ArrayUint32ArrayUint8ClampedArraySharedArrayBufferProxyWeakRefFinalizationRegistry

以下の組み込み関数に対して new の使用を禁止します:StringNumberBooleanSymbolBigInt

なぜこれは問題なのか

new の使用が一貫していないと混乱を招く可能性があります。ArrayRegExp のようなコンストラクタは、期待されるインスタンス型を保証するために常に new を使用すべきです。一方で、StringNumberBooleanSymbolBigInt については new を使用すべきではありません。これらの値はプリミティブな値ではなく、オブジェクトラッパーを作成してしまうためです。

このルールに違反する誤ったコードの例:

javascript
const foo = new String("hello world");
const bar = Array(1, 2, 3);

このルールに準拠する正しいコードの例:

javascript
const foo = String("hello world");
const bar = new Array(1, 2, 3);

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、以下のようにします:

json
{
  "rules": {
    "unicorn/new-for-builtins": "error"
  }
}
bash
oxlint --deny unicorn/new-for-builtins

参照