Skip to content
← Back to rules

eslint/no-new-wrappers 細心な

An auto-fix is available for this rule.

何を行うか

StringNumberBoolean オブジェクトに対する new 演算子の使用を禁止する

なぜ問題なのか

まず、プリミティブラッパー对象は実際にオブジェクトであるため、typeof"string""number""boolean" ではなく "object" を返すようになります。第二に、ブール値オブジェクトに関する問題があります。すべてのオブジェクトは真偽値として真となるため、Boolean インスタンスはその実際の値が false であっても常に true と評価されてしまいます。

https://eslint.org/docs/latest/rules/no-new-wrappers

このルールに対して不正なコードの例:

js
var stringObject = new String("Hello world");
var numberObject = new Number(33);
var booleanObject = new Boolean(false);
var symbolObject = new Symbol("foo"); // Symbol はコンストラクタではない

このルールに対して正しいコードの例:

js
var stringObject = "Hello world";
var stringObject2 = String(value);
var numberObject = Number(value);
var booleanObject = Boolean(value);
var symbolObject = Symbol("foo");

使用方法

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

json
{
  "rules": {
    "no-new-wrappers": "error"
  }
}
bash
oxlint --deny no-new-wrappers

参照