eslint/no-else-return Pedantic
작동 방식
if 문에서 return 문이 포함된 후, else 블록을 허용하지 않음
왜 나쁜가?
if 블록 내부에 return 문이 있다면, 해당 else 블록은 불필요하게 됩니다. 그 내용은 블록 외부로 옮길 수 있습니다.
javascript
function foo() {
if (x) {
return y;
} else {
return z;
}
}이 규칙은 return 문을 포함한 if 문 이후에 불필요한 코드 블록을 강조하기 위한 것입니다. 따라서 모든 if 문이 return 문을 포함하는 체인 뒤에 else 가 오는 경우 경고를 발생시킵니다.
예시
allowElseIf: true
이 규칙에 대한 잘못된 코드 예시:
javascript
function foo1() {
if (x) {
return y;
} else {
return z;
}
}
function foo2() {
if (x) {
return y;
} else if (z) {
return w;
} else {
return t;
}
}
function foo3() {
if (x) {
return y;
} else {
var t = "foo";
}
return t;
}
function foo4() {
if (error) {
return "It failed";
} else {
if (loading) {
return "It's still loading";
}
}
}
// 중첩된 경우 두 개의 경고 발생
function foo5() {
if (x) {
if (y) {
return y;
} else {
return x;
}
} else {
return z;
}
}이 규칙에 대한 올바른 코드 예시:
javascript
function foo1() {
if (x) {
return y;
}
return z;
}
function foo2() {
if (x) {
return y;
} else if (z) {
var t = "foo";
} else {
return w;
}
}
function foo3() {
if (x) {
if (z) {
return y;
}
} else {
return z;
}
}
function foo4() {
if (error) {
return "It failed";
} else if (loading) {
return "It's still loading";
}
}구성
이 규칙은 다음 속성을 가진 구성 객체를 수락합니다:
allowElseIf
type: boolean
기본값: true
return 문 뒤에 else if 블록을 허용할지 여부.
allowElseIf: false 설정 시 이 규칙에 대한 잘못된 코드 예시:
javascript
function foo() {
if (error) {
return "It failed";
} else if (loading) {
return "It's still loading";
}
}allowElseIf: false 설정 시 이 규칙에 대한 올바른 코드 예시:
javascript
function foo() {
if (error) {
return "It failed";
}
if (loading) {
return "It's still loading";
}
}사용 방법
이 규칙을 설정 파일 또는 명령줄 인터페이스를 통해 활성화하려면 다음을 사용하세요:
json
{
"rules": {
"no-else-return": "error"
}
}bash
oxlint --deny no-else-return