본문 바로가기
개발/TypeScript

Never 타입 -> 내 코드가 뭔가 문제가 있구나!

by 안뇽! 2022. 2. 10.
반응형

코딩애플 강의를 보고 복습하려고 적는 글임니돠.


never 타입은 아래 두 경우의 함수에서 나타난다.

  • 무한루프, throw Err 등 끝나지 않는 함수
  • 리턴이 없는 함수

 

실전에서 never타입은 쓸일이 없다고 한다. void로 대체 가능하니깐

 

그럼에도 never 타입을 알아야 하는 이유는 함수을 이상하게 짰을때 등장하기 때문, 그럼 알아먹을 수 있어야하니깐.

 

function seunghhhhh(parameter:string){
  if(typeof parameter==="string") {
    console.log(parameter)
  }else{
    //else가 말이 되냐? 말이 안됨
    

    console.log(parameter)
  } 
}

위와 같이 함수를 작성했다고 해보자.

 

else는 말이 안된다. parameter는 무조건 string만 들어오니까.

 

이때 else문 내부의 parameter에 마우스를 올려보면 never로 나옴.

else내부의 console.log(53번줄)가 실행될 일이 없다. 를 표현하기 위해 parameter의 타입이 never가 된다.

 

=> NEVER 타입 보이면 코드 어딘가가 이상한 것이다.

'내코드가 왜이러지? 뭔가 이상하다' 정도만 느낄 수 있으면 됨.

 

혹은 특정 함수표현식에서도 NEVER가 등장한다.

 

위 함수는 강제로 에러를 뱉는 함수다. undefined도 null도 아무것도 남지 않는 함수이다.

 

때문에 never 타입임.

 

 

반응형

'개발 > TypeScript' 카테고리의 다른 글

Generic  (0) 2022.05.09
Enum  (0) 2022.05.06
typeof로 object를 구분할 수 없을때 narrowing 하는 방법 : IN 연산자  (0) 2022.01.19
타입스크립트 : rest파라미터의 타입  (0) 2022.01.18
Type alias와 interface 차이  (0) 2022.01.15