Skip to content
← Back to rules

eslint/no-else-return Pedantic

🛠️ An auto-fix is available for this rule for some violations.

작동 방식

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

참고자료