TypeScript never Type

kukudas·2022년 2월 7일
0

TypeScript

목록 보기
2/39

never type은 아무 값도 저장하고 있지 않은 타입임. 따라서 never type을 가지고 있는 변수에는 값을 할당할 수 없음.
보통 아래처럼 언제나 에러를 리턴하는 함수에 사용함.

function raiseError(message: string): never {
    throw new Error(message);
}
// 아래의 return type은 never로 infer됨
function reject() { 
   return raiseError('Rejected');
}

아래 forever()처럼 무한루프를 보유한 함수의 return type도 never type임.

let loop = function forever() {
    while (true) {
        console.log('Hello');
    }
}

아래처럼 type narrow를 하면 a에 string이나 number type이 아닌 값이 들어올 경우 에러가 발생함.

function fn(a: string | number): boolean {
  if (typeof a === "string") {
    return true;
  } else if (typeof a === "number") {
    return false;
  }   
}

따라서 위 코드를 아래처럼 string이나 number가 아닐경우에 never type을 return 하게 만들면됨.

  • never type은 값을 저장하고 있지 않음.
  • never tpye은 언제나 에러를 throw하는 함수의 return type이거나 무한루프를 보유한 함수의 return type임.

출처

0개의 댓글

관련 채용 정보