Development Tip

jshint가 " 'case'앞에 'break'문이 있어야합니다."

yourdevel 2021. 1. 6. 20:29
반응형

jshint가 " 'case'앞에 'break'문이 있어야합니다."


안녕하세요, 내 프레임 워크가 jshint를 사용하여 javascript코드의 유효성을 검사 할 때 문제가 있습니다. 의도적으로 break 문없이 switch-case를 사용했지만이 코드 부분은 jshint검사 할 때 오류로 캡처됩니다 . 내 코드는 다음과 같습니다.

    switch (<no>){
    case 1:
        // does something
    case 2:
        //does something more
    default:
        // does something even more
   }

Error from 'jshint' is like Line 203 character 41: Expected a 'break' statement before 'case'.그것을 피하는 방법에 대한 어떤 생각? 아니면이 시나리오에서 스위치 케이스를 사용하는 것이 나쁜 습관입니까?


문서에서 복사 및 붙여 넣기 :

Switch 문

기본적으로 JSHint는 switch 문 내에서 break 또는 return 문을 생략 할 때 경고합니다.

[...]

당신이하고있는 일을 정말로 알고 있다면 /* falls through */주석 을 추가하여 케이스 블록이 넘어가도록 JSHint에 알릴 수 있습니다 .

따라서 귀하의 경우 :

switch (<no>) {
  case 1:
    // does something
    /* falls through */
  case 2:
    //does something more
    /* falls through */
  default:
    // does something even more
}

정확히, breaks는이 예 에서처럼 완전히 불필요 할 수 있습니다.

function mapX(x){
  switch (x){
    case 1:
      return A;
    case 2:
      return B;
    default:
      return C;
  }
}

이 경우 breakafter return있었으면 JS Standard 는 경고, 즉 Unreachable code.

jshint와 JS Standard를 조화시키려는 시도는 까다 롭지 만 언급했듯이 해결책은 다음과 같습니다.

function mapX(x){
  switch (x){
    case 1:
      return A;
      /* falls through */
    case 2:
      return B;
      /* falls through */
    default:
      return C;
  }
}

참조 URL : https://stackoverflow.com/questions/22398251/jshint-throws-aexpected-a-break-statement-before-case

반응형