Skip to content
← Back to rules

eslint/eqeqeq Pedantic

⚠️🛠️ A dangerous auto-fix is available for this rule for some violations.

무엇을 하는가

===!== 연산자의 사용을 요구하고, ==!=의 사용을 금지합니다.

왜 나쁜가?

비엄격한 동등성 연산자를 사용하면 타입 강제 변환으로 인해 예기치 못한 동작이 발생할 수 있으며, 이는 찾기 어려운 버그를 초래할 수 있습니다.

예시

예시 JSON 구성:

json
{
  "eqeqeq": ["error", "always", { "null": "ignore" }]
}

"always" (기본값)

이 규칙에 대한 잘못된 코드 예시:

js
/* eqeqeq: "error" */

if (x == 42) {
}
if ("" == text) {
}
if (obj.getStuff() != undefined) {
}

이 규칙에 대한 올바른 코드 예시:

js
/* eqeqeq: "error" */

if (x === 42) {
}
if ("" === text) {
}
if (obj.getStuff() !== undefined) {
}

"smart"

"smart" 옵션과 함께 이 규칙에 대한 잘못된 코드 예시:

js
/* eqeqeq: ["error", "smart"] */

if (x == 42) {
}
if ("" == text) {
}

"smart" 옵션과 함께 이 규칙에 대한 올바른 코드 예시:

js
/* eqeqeq: ["error", "smart"] */

if (typeof foo == "undefined") {
}
if (foo == null) {
}
if (foo != null) {
}

{"null": "ignore"} (첫 번째 옵션으로 "always" 사용 시)

{ "null": "ignore" } 옵션과 함께 이 규칙에 대한 잘못된 코드 예시:

js
/* eqeqeq: ["error", "always", { "null": "ignore" }] */
if (x == 42) {
}
if ("" == text) {
}

{ "null": "ignore" } 옵션과 함께 이 규칙에 대한 올바른 코드 예시:

js
/* eqeqeq: ["error", "always", { "null": "ignore" }] */
if (foo == null) {
}
if (foo != null) {
}

{"null": "always"} (기본값 - 첫 번째 옵션으로 "always" 사용 시)

{ "null": "always" } 옵션과 함께 이 규칙에 대한 잘못된 코드 예시:

js
/* eqeqeq: ["error", "always", { "null": "always" }] */

if (foo == null) {
}
if (foo != null) {
}

{ "null": "always" } 옵션과 함께 이 규칙에 대한 올바른 코드 예시:

js
/* eqeqeq: ["error", "always", { "null": "always" }] */

if (foo === null) {
}
if (foo !== null) {
}

{"null": "never"} (첫 번째 옵션으로 "always" 사용 시)

{ "null": "never" } 옵션과 함께 이 규칙에 대한 잘못된 코드 예시:

js
/* eqeqeq: ["error", "always", { "null": "never" }] */

if (x == 42) {
}
if ("" == text) {
}
if (foo === null) {
}
if (foo !== null) {
}

{ "null": "never" } 옵션과 함께 이 규칙에 대한 올바른 코드 예시:

js
/* eqeqeq: ["error", "always", { "null": "never" }] */

if (x === 42) {
}
if ("" === text) {
}
if (foo == null) {
}
if (foo != null) {
}

구성

첫 번째 옵션

형식: "always" | "smart"

"always"

항상 삼중 등호 비교(===/!==)를 요구합니다.
이것이 기본값입니다.

"smart"

타입 확인(typeof), 리터럴, 또는 nullish 값과의 안전한 비교에서는 ==/!=를 허용합니다.

두 번째 옵션

이 옵션은 다음 속성을 가진 객체입니다:

null

형식: "always" | "never" | "ignore"

"always"

null과 비교할 때 항상 삼중 등호를 사용하도록 요구합니다 (=== null/!== null).
이것이 기본값입니다.

"never"

null과 비교할 때 항상 삼중 등호를 요구하지 않으며, 언제나 == null/!= null을 사용합니다.

"ignore"

null 비교를 무시하고, == null/!= null 또는 === null/!== null 둘 중 하나를 허용합니다.

사용 방법

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

json
{
  "rules": {
    "eqeqeq": "error"
  }
}
bash
oxlint --deny eqeqeq

참고 자료