eslint/no-new-wrappers 조심스러운
작동 방식
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