타입스크립트 never

jae·2022년 8월 17일
0

never 타입의 조건

function 함수명() :never{
// return undefined
}

endpoint가 없어야한다.
즉 리턴값이 없어서 함수가 끝나지 않아야한다

만드는 방법

function 함수명() :never{
throw new Error()
}

이렇게 에러를 만들어주거나

function 함수명() :never{
while(true){}
}

이렇게 while에 강제로 값을 참으로 지정해주어서 함수가 계속 진행되게 해야한다..

그래서 실제로 Never 타입을 쓸 수 있는 곳은 없다.
필요하다면 void(없는) 타입을 이용하면 되는 것이니깐...

하지만 Never 타입이 왜 있을까??

하지만 never 타입을 알고는 있어야하는데 그 이유는

function 함수명(매개변수:string){
	if (typeof 매개변수===string){
		console.log("참입니다")
	}else{
		console.log("거짓입니다") // never 타입이 됨
	}
}

만약 이렇게 파라미터의 타입을 지정을 해두었는데
내부에서 매개변수의 타입이 지정된 타입이 아닐 경우를 가정하여
조건을 걸어둔다면 그 내부의 매개변수는 Never 타입을 가지게 된다!
즉 Never는 존재할수 없다는 뜻으로 쓰이기에
이렇게 함수 안에서 never 가 확인이 된다면?

아 내가 뭔가 잘못했군ㅎ 존재하지 않은 것의 창조주가 되었나보네? 라고 생각해야한다

0개의 댓글