eslint/no-new-wrappers Pedantic
它的作用
禁止对 String、Number 和 Boolean 对象使用 new 运算符。
这为什么不好?
第一个问题是,原始值包装对象实际上就是对象。这意味着 typeof 会返回 "object",而不是 "string"、"number" 或 "boolean"。第二个问题出在布尔对象上。每个对象都是真值,这意味着 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");如何使用
To enable this rule using the config file or in the CLI, you can use:
json
{
"rules": {
"no-new-wrappers": "error"
}
}ts
import { defineConfig } from "oxlint";
export default defineConfig({
rules: {
"no-new-wrappers": "error",
},
});bash
oxlint --deny no-new-wrappers版本
此规则于 v0.2.10 中添加。
