TypeScript 합시다
[TypeScript][Ch2][Basic Types] never
써치킴
2022. 2. 10. 03:35
never
- 일반적으로 함수의 리턴 타입으로 사용
- 함수의 리턴 타입으로 never가 사용될 경우, 항상 오류를 출력하거나 리턴 값을 절대로 내보내지 않음을 의미
- 모든 타입의 서브타임이며, 모든 타입에 할당할 수 있다. 하지만 never에는 그 어떤 것도 할당할 수 없다.
- any도 할당할 수 없다.
- 잘못된 타입을 넣는 실수를 막고자 할때 사용하기도 한다.
// 항상 오류 발생
function error(message: string):never { // never를 리턴
throw new Error(message);
}
function fail() {
return error("faild");
}
// 무한루프도 never를 리턴
function infiniteLoop(): never {
while (true) {
}
}
let a: string = "hello";
if (typeof a !== 'string') {
// a는 string 타입인데 해당 if문은 a가 string 타입이 아닐 경우이기 때문에
// if문 안에서 a는 아무것도 할당할 수 없는 상태는 never이다.
}