跳到內容

eslint/no-new-wrappers 吹毛求疵

🚧 自動修復功能仍在開發中。

功能

禁止使用 new 運算子搭配 StringNumberBoolean 物件

為什麼這不好?

第一個問題是基本型別包裝物件實際上是物件。這表示 typeof 會返回 "object",而不是 "string""number""boolean"。第二個問題來自於布林物件。每個物件都是真值,這表示即使 Boolean 的實例的實際值為 false,它始終會解析為 true

https://eslint.dev.org.tw/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 許可證發布。