eslint/no-new-wrappers 谨慎
作用
禁止对 String、Number 和 Boolean 对象使用 new 操作符
为什么这是个问题?
第一个问题是,原始包装对象实际上就是对象。这意味着 typeof 的返回值会是 "object",而不是 "string"、"number" 或 "boolean"。第二个问题是布尔对象。每个对象都是真值,这意味着 Boolean 的实例总是解析为 true,即使其实际值是 false。
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");如何使用
通过配置文件或命令行启用此规则,可以使用:
json
{
"rules": {
"no-new-wrappers": "error"
}
}bash
oxlint --deny no-new-wrappers