👻👻사실 never보다 void
타입이 훨씬많이 쓰입니다.👻👻
자주 쓰이지 않지만 나올수도 있으니 함수에서 never
타입을 알아봅시다
never type에는 몇가지 조건이 필요합니다.
조건 1) return 값 없다
조건 2) 함수 실행이 끝나지 않아야합니다 (endpoint가 없어야합니다)
실은 둘다 같은말인데요
모든 자바스크립트 함수엔 return undefined 라는 숨겨진 코드를 가지고 있습니다.
그래서 조건2가 맞으면 1도 맞음
절대 끝나지않는 함수 그게뭔데요
function 함수() :never {
throw new Error()
}
👉 컴퓨터에 에러가뜨고, 코드실행이 중단됩니다. 즉. 함수가끝나진않은겁니다.
function 함수() :never{
while ( true ) {
console.log(123)
}
}
👉 무한히 실행되므로 never 타입 쓸수있습니다.
그래서 never 타입은 언제 발견할 수 있냐면요
코드를 이상하게 짤 경우 볼 수 있습니다.
function 함수(param :string){
if(typeof param =='string'){
console.log(param)
}
else{ //애초에 string만 들어올 수 있으니 else쓰면 이상하게 코드짠겁니다.
console.log(param) //여기서 param 의 type이 never가 됩니다.
// 이런 현상이 있을 수 없다는 never
}
}
함수 선언문
이 아무것도 return 하지 않고 끝나지도 않을 경우
void
타입이 자동으로 return 타입으로 할당되며
함수 표현식
이 아무것도 return 하지 않고 끝나지도 않을 경우
never
타입이 자동으로 return 타입으로 할당됩니다.