Skip to content
← Back to rules

eslint/no-new-wrappers 조심스러운

An auto-fix is available for this rule.

작동 방식

String, Number, Boolean 객체와 함께 new 연산자를 사용하는 것을 금지합니다.

왜 나쁜가요?

첫 번째 문제는 기본 타입 래퍼 객체가 실제로는 객체라는 점입니다. 이로 인해 typeof"string", "number", "boolean" 대신 "object"를 반환하게 됩니다. 두 번째 문제는 부울 객체에 관련된 것입니다. 모든 객체는 참으로 간주되므로, 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");

사용 방법

설정 파일이나 명령줄 인터페이스에서 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:

json
{
  "rules": {
    "no-new-wrappers": "error"
  }
}
bash
oxlint --deny no-new-wrappers

참고 자료