跳到内容

eslint/no-new-wrappers 死板

🚧 自动修复仍在开发中。

它做什么

禁止使用 StringNumberBoolean 对象的 new 运算符

为什么这样做不好?

首先,原始包装器对象实际上是对象。这意味着 typeof 将返回 "object" 而不是 "string""number""boolean"。第二个问题来自布尔对象。每个对象都是真值,这意味着 Boolean 的实例始终解析为 true,即使它的实际值为 false

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

示例

此规则不正确的代码示例

js
var stringObject = new String("Hello world");
var numberObject = new Number(33);
var booleanObject = new Boolean(false);

此规则正确的代码示例

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

参考

在 MIT 许可下发布。