eslint/eqeqeq Pedantic
무엇을 하는가
=== 및 !== 연산자의 사용을 요구하고, == 및 !=의 사용을 금지합니다.
왜 나쁜가?
비엄격한 동등성 연산자를 사용하면 타입 강제 변환으로 인해 예기치 못한 동작이 발생할 수 있으며, 이는 찾기 어려운 버그를 초래할 수 있습니다.
예시
예시 JSON 구성:
{
"eqeqeq": ["error", "always", { "null": "ignore" }]
}"always" (기본값)
이 규칙에 대한 잘못된 코드 예시:
/* eqeqeq: "error" */
if (x == 42) {
}
if ("" == text) {
}
if (obj.getStuff() != undefined) {
}이 규칙에 대한 올바른 코드 예시:
/* eqeqeq: "error" */
if (x === 42) {
}
if ("" === text) {
}
if (obj.getStuff() !== undefined) {
}"smart"
"smart" 옵션과 함께 이 규칙에 대한 잘못된 코드 예시:
/* eqeqeq: ["error", "smart"] */
if (x == 42) {
}
if ("" == text) {
}"smart" 옵션과 함께 이 규칙에 대한 올바른 코드 예시:
/* eqeqeq: ["error", "smart"] */
if (typeof foo == "undefined") {
}
if (foo == null) {
}
if (foo != null) {
}{"null": "ignore"} (첫 번째 옵션으로 "always" 사용 시)
{ "null": "ignore" } 옵션과 함께 이 규칙에 대한 잘못된 코드 예시:
/* eqeqeq: ["error", "always", { "null": "ignore" }] */
if (x == 42) {
}
if ("" == text) {
}{ "null": "ignore" } 옵션과 함께 이 규칙에 대한 올바른 코드 예시:
/* eqeqeq: ["error", "always", { "null": "ignore" }] */
if (foo == null) {
}
if (foo != null) {
}{"null": "always"} (기본값 - 첫 번째 옵션으로 "always" 사용 시)
{ "null": "always" } 옵션과 함께 이 규칙에 대한 잘못된 코드 예시:
/* eqeqeq: ["error", "always", { "null": "always" }] */
if (foo == null) {
}
if (foo != null) {
}{ "null": "always" } 옵션과 함께 이 규칙에 대한 올바른 코드 예시:
/* eqeqeq: ["error", "always", { "null": "always" }] */
if (foo === null) {
}
if (foo !== null) {
}{"null": "never"} (첫 번째 옵션으로 "always" 사용 시)
{ "null": "never" } 옵션과 함께 이 규칙에 대한 잘못된 코드 예시:
/* eqeqeq: ["error", "always", { "null": "never" }] */
if (x == 42) {
}
if ("" == text) {
}
if (foo === null) {
}
if (foo !== null) {
}{ "null": "never" } 옵션과 함께 이 규칙에 대한 올바른 코드 예시:
/* 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 둘 중 하나를 허용합니다.
사용 방법
이 규칙을 구성 파일이나 명령줄 인터페이스에서 활성화하려면 다음과 같이 사용할 수 있습니다:
{
"rules": {
"eqeqeq": "error"
}
}oxlint --deny eqeqeq