써치킴의 우당탕탕 개발 블로그

[TypeScript][Ch2][Basic Types] never 본문

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이다.
}

 

Comments