본문 바로가기
front-end/TypeScript

[TS]03 unKnown / void / never

by -제이리 2022. 5. 10.
728x90
320x100

unKnown

변수의 타입을 미리 알지 못할 때 사용한다. 만약 API로 부터 응답을 받는데 그 응답의 타입을 모른다면 'unknown'타입을 쓸 수 있다.

any와 차이점: any타입처럼 모든 값을 허용하지만 차이점은 할당된 값이 어떤 타입인지 알기전까진 프로퍼티 또는 연산을 하는경우 컴파일러가 체크한다.

 

let a:unknown;

//if문으로 타입체크를 하면 동작시킬수 있다.
if(typeof a === 'number'){ 
  let b = a + 1
}

void

void: 아무것도 return하지 않는 함수를 의미한다. 보통 void를 따로 지정해줄 필요는 없다. void는 '비어 있는 것'을 말한다.
function hello(){ // void는 생략 가능
  console.log('x')
}

never  

함수가 절대 return되지 않을 떄 발생한다. 예를 들어 함수에서 exception(예외)이 발생할 때.
function hello():never{  //-> 타입을 never로 지정하면 return을 실행을 못하고 오류를 일으킨다.
  return 'x'
}

//-----------

function hey(name:string | number){
  if(typeof name === 'string'){ 
    name // -> name이 string타입이 된다.
  }else if(typeof name === 'number'){ 
    name // -> name이 number타입이 된다.
  }else {
    name // -> name이 never이 된다.
  }
}
//만약 타입이 올바르게 들어온다면 마지막 name(never)은 실행되지 않는다.
never에대한 자세한 글 (https://ui.toast.com/weekly-pick/ko_20220323)

 

728x90
320x100

댓글