본문 바로가기
프론트엔드/TypeScript

never

by step 1 2021. 6. 15.
반응형

주로 return에 사용된다.

function error(message: string): never {
    throw new Error(message);

}

function fail(){
  return error('failed');
}

// 무한 루프
function infiniteLoop(): never {
  while(true){

  }
}

 

never 타입은 모든 타입의 subtype 이며, 모든 타입에 할당 할 수 있습니다.

하지만, never에는 그 어떤 것도 할당할 수 없습니다.

any 조차도 never에게 할당 할 수 없습니다.

잘못된 타입을 넣는 실수를 막고자 할 때 사용하기도 한다.

declare const a2: string | number;
// never를 이용해서 잘못된 타입을 넣지 않는 방법
if (typeof a2 !== 'string'){
  a2; // numver
  if (typeof a2 !== 'number'){
    a2; // never
  }
}

type Indexable<T> = T extends string ? T & {[index: string]: any} : never;

type ObjectIndexable = Indexable<'aa'>;

type ObjectIndexable2 = Indexable<{}>;

 

반응형

'프론트엔드 > TypeScript' 카테고리의 다른 글

타입 시스템  (0) 2021.06.15
void  (0) 2021.06.15
unknown  (0) 2021.06.15
any  (0) 2021.06.15
Array  (0) 2021.06.14