에러만 던질 때:
const throwError = (message: string): never => {
throw new Error();
}
함수의 실행 과정에서 에러를 던지기 때문에, 함수의 마지막(그것이 throw new Error() 구문일지라도)까지 결코(never) 이를 수 없으므로 반환 값은 never가 된다.
특정 상황에서 에러를 던지지만, 다른 상황에서는 반환 값이 있을 때:
const throwError = (message: string): string => {
if(!message) {
throw new Error();
}
return message;
}
반환 값에 대한 타입으로 에러에 대한 타입을 지정하지 않아도 된다.