더북(TheBook)

paramstring 아니면 number인데 else문에서는 stringnumber도 아닌 상태가 되어버립니다. 사실상 else문이 실행될 일은 없기에 paramnever로 추론되고, param과 관련한 작업을 할 수 없게 됩니다.

드물지만 never를 직접 써야 할 상황도 있습니다.

function neverFunc1(): never {
  throw new Error('에러');
}
function infinite(): never {
  while (true) {
    console.log('무한 반복됩니다');
  }
}

함수 선언문에서는 반환값 타입이 void로 추론되므로 never로 직접 표기하면 됩니다.

타입스크립트 설정에 따라 배열에서 never를 보는 경우도 있습니다. TS Config 메뉴에서 noImplicitAny를 체크 해제하면 배열이 any[]에서 never[]가 됩니다. noImplicitAny 체크박스는 이름 그대로 implicitAny 에러를 검사할지 결정하는 옵션입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.