Skip to content
← Back to rules

eslint/no-implicit-coercion 스타일

An auto-fix is available for this rule.

작동 방식

!!, +, ""+ 등의 연산자를 사용한 암시적 타입 변환을 금지합니다.

왜 문제가 되는가?

연산자를 사용한 암시적 타입 변환은 Boolean(), Number(), String()과 같은 명시적 타입 변환 함수를 사용하는 것보다 더 모호할 수 있습니다. 명시적 변환을 사용하면 의도가 더 명확해지고 코드가 더 가독성이 뛰어납니다.

예시

이 규칙에 위배되는 잘못된 예시:

javascript
var b = !!foo;
var n = +foo;
var s = "" + foo;

이 규칙에 부합하는 올바른 예시:

javascript
var b = Boolean(foo);
var n = Number(foo);
var s = String(foo);

구성

이 규칙은 다음 속성을 가진 구성 객체를 받습니다.

allow

type: string[]

허용할 연산자 목록입니다. 유효한 값: "!!", "~", "+", "-", "- -", "*"

boolean

type: boolean

기본값: true

true로 설정 시, 암시적 부울 타입 변환(예: !!foo)에 대해 경고합니다.

disallowTemplateShorthand

type: boolean

기본값: false

true로 설정 시, 문자열 변환에 템플릿 리터럴을 사용하는 것을 금지합니다(예: `${foo}`).

number

type: boolean

기본값: true

true로 설정 시, 암시적 숫자 타입 변환(예: +foo)에 대해 경고합니다.

string

type: boolean

기본값: true

true로 설정 시, 암시적 문자열 타입 변환(예: "" + foo)에 대해 경고합니다.

사용 방법

구성 파일 또는 CLI에서 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:

json
{
  "rules": {
    "no-implicit-coercion": "error"
  }
}
bash
oxlint --deny no-implicit-coercion

참고 자료