Skip to content
← Back to rules

unicorn/new-for-builtins Pedantic

🚧 An auto-fix is planned for this rule, but not implemented at this time.

작동 방식

다음 내장 함수에 대해 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를 일관되지 않게 사용하면 혼란을 초래할 수 있습니다. ArrayRegExp 같은 생성자들은 항상 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

참고 자료