function 함수명() :never{
// return undefined
}
endpoint가 없어야한다.
즉 리턴값이 없어서 함수가 끝나지 않아야한다
function 함수명() :never{
throw new Error()
}
이렇게 에러를 만들어주거나
function 함수명() :never{
while(true){}
}
이렇게 while에 강제로 값을 참으로 지정해주어서 함수가 계속 진행되게 해야한다..
그래서 실제로 Never 타입을 쓸 수 있는 곳은 없다.
필요하다면 void(없는) 타입을 이용하면 되는 것이니깐...
하지만 never 타입을 알고는 있어야하는데 그 이유는
function 함수명(매개변수:string){
if (typeof 매개변수===string){
console.log("참입니다")
}else{
console.log("거짓입니다") // never 타입이 됨
}
}
만약 이렇게 파라미터의 타입을 지정을 해두었는데
내부에서 매개변수의 타입이 지정된 타입이 아닐 경우를 가정하여
조건을 걸어둔다면 그 내부의 매개변수는 Never 타입을 가지게 된다!
즉 Never는 존재할수 없다는 뜻으로 쓰이기에
이렇게 함수 안에서 never 가 확인이 된다면?
아 내가 뭔가 잘못했군ㅎ 존재하지 않은 것의 창조주가 되었나보네? 라고 생각해야한다