unicorn/new-for-builtins 嚴格
作用
強制以下內建函數使用 new
:Object
、Array
、ArrayBuffer
、BigInt64Array
、BigUint64Array
、DataView
、Date
、Error
、Float32Array
、Float64Array
、Function
、Int8Array
、Int16Array
、Int32Array
、Map
、WeakMap
、Set
、WeakSet
、Promise
、RegExp
、Uint8Array
、Uint16Array
、Uint32Array
、Uint8ClampedArray
、SharedArrayBuffer
、Proxy
、WeakRef
、FinalizationRegistry
。
禁止以下內建函數使用 new
:String
、Number
、Boolean
、Symbol
、BigInt
。
這些不應使用 new
,因為那會為原始值建立物件包裝器,這不是您想要的。然而,在不使用 new
的情況下,它們可以用於將值強制轉換為該類型。
為什麼這樣不好?
它們的作用相同,但為了與其他建構子保持一致,應優先使用 new
。
範例
此規則的不正確程式碼範例
javascript
const foo = new String("hello world");
const bar = Array(1, 2, 3);
此規則的正確程式碼範例
javascript
const foo = String("hello world");
const bar = new Array(1, 2, 3);