공유/ESLint

[eslint] switch 문

구하천포 2024. 10. 21. 18:48

switch 문과 관련된 eslint 규칙에 대해 알아보도록 하겠습니다.
최종 규칙을 보여드리면 아래와 같습니다.
하나씩 알아보도록 하겠습니다.

{
  "rules": {
    "default-case": "error",
    "no-fallthrough": "error",
    "no-case-declarations": "error",
    "consistent-return": "error",
    "no-duplicate-case": "error"
  }
}

default-case

switch 문에 default 케이스가 존재하도록 강제하는 규칙입니다.

// bad
switch (condition) {
  case 1:
    break;
}

// good
switch (condition) {
  case 1:
    break;

  default:
    break;
}

no-fallthrough

case 문에서 break 없이 다음 case로 넘어가는 것을 방지하는 규칙입니다.

// bad
switch (condition) {
  case 1:
  case 2:
    break;
}

// good
switch (condition) {
  case 1:
    break;

  case 2:
    break;
}

no-case-declarations

case 문 안에 변수를 선언할 때 블록을 사용하도록 강제하는 규칙입니다.

// bad
switch (condition) {
  case 1:
    const name = "name";
    break;
}

// good
switch (condition) {
  case 1: {
    const name = "name";
    break;
  }
}

consistent-return

case 문에서 반환 값을 일관되게 반환하거나, 반환하지 않도록 하는 규칙입니다.

// bad
switch (condition) {
  case "A":
    return "a";

  case "b":

  default:
    break;
}

// good
switch (condition) {
  case "A":
    return "a";

  case "b":
    return "b";

  default:
    return "c";
    break;
}

no-duplicate-case

동일한 case 문을 작성하지 않도록 하는 규칙입니다.

// bad
switch (a) {
  case "A":
    return "a";

  case "A":
    return "A";

  default:
    return "c";
    break;
}

// good
switch (a) {
  case "A":
    return "a";

  case "b":
    return "b";

  default:
    return "c";
    break;
}
반응형