함수 never 타입

크롱·2023년 7월 25일
0

TypeScript

목록 보기
12/25

👻👻사실 never보다 void타입이 훨씬많이 쓰입니다.👻👻
자주 쓰이지 않지만 나올수도 있으니 함수에서 never타입을 알아봅시다

never type

never type에는 몇가지 조건이 필요합니다.

조건 1) return 값 없다
조건 2) 함수 실행이 끝나지 않아야합니다 (endpoint가 없어야합니다)

실은 둘다 같은말인데요
모든 자바스크립트 함수엔 return undefined 라는 숨겨진 코드를 가지고 있습니다.
그래서 조건2가 맞으면 1도 맞음

endpoint가 없다는게 뭔가요

절대 끝나지않는 함수 그게뭔데요

function 함수() :never {
	throw new Error()
}
👉 컴퓨터에 에러가뜨고, 코드실행이 중단됩니다.. 함수가끝나진않은겁니다.



function 함수() :never{
  while ( true ) {
    console.log(123)
  }
}
👉 무한히 실행되므로 never 타입 쓸수있습니다.




예시1

그래서 never 타입은 언제 발견할 수 있냐면요
코드를 이상하게 짤 경우 볼 수 있습니다.


function 함수(param :string){
	if(typeof param =='string'){
    console.log(param)
    }
  	else{  //애초에 string만 들어올 수 있으니 else쓰면 이상하게 코드짠겁니다.
    console.log(param) //여기서 param 의 type이 never가 됩니다.
      				// 이런 현상이 있을 수 없다는 never
    }
}
    

예시2 - 함수 표현식


함수 선언문이 아무것도 return 하지 않고 끝나지도 않을 경우
void 타입이 자동으로 return 타입으로 할당되며

함수 표현식이 아무것도 return 하지 않고 끝나지도 않을 경우
never 타입이 자동으로 return 타입으로 할당됩니다.

profile
👩‍💻안녕하세요🌞

0개의 댓글