unicorn/new-for-builtins Pedantic
작동 방식
다음 내장 함수에 대해 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를 일관되지 않게 사용하면 혼란을 초래할 수 있습니다. Array 및 RegExp 같은 생성자들은 항상 new를 사용하여 예상되는 인스턴스 타입을 보장해야 합니다. 반면, String, Number, Boolean, Symbol, BigInt는 객체 래퍼를 생성하는 것이 아니라 원시 값(기본값)을 생성하기 때문에 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);사용 방법
이 규칙을 설정 파일이나 명령줄 인터페이스에서 활성화하려면 다음을 사용하세요:
json
{
"rules": {
"unicorn/new-for-builtins": "error"
}
}bash
oxlint --deny unicorn/new-for-builtins