[TS] TypeScript의 Types(2)

yongkini ·2022년 5월 13일
0

TypeScript

목록 보기
5/11

TS에만 존재하는 타입에 관하여

Void

: 사실 void는 자바(JAVA)를 썼던 사람이라면(사실 대부분의 타입스크립트 타입들이 그렇지만) 알고 있는 개념일 것이다. 결과적으로 void는 함수에서 리턴값이 없을 때 return 타입을 void로 해주거나, return 타입을 생략했다면 default로 void 타입이 세팅된다. 예시로 좀더 자세하게 살펴보면, 이런 함수가 있다했을 때 return 값은 undefined라는 것을 알고 있다. 실제로 리턴값을 받아보면 void라고 표시가 된다. 이렇게 직접 지정해줄수도 있는데, 만약 이경우에 return 값을 쓰게되면 에러를 낸다.
** 위와 같이 해주면, 타입스크립트가 알아서 타입 추론을 해서 string임을 인식하여 에러가 나지 않는다.

Unknown


그래서 위와 같이 typeof를 써서 string일 때만 a.length를 쓰도록해주면 에러를 리턴하지 않는다(참똑똑하다..). 그래서 unknown은 any보다 조금더 엄격하게 타입을 체킹하고 싶지만 확실하게 타입이 뭔지 모를 때 써주면 된다. unknown을 쓰지 않으면 typeof로 예외 사항을 분기처리 하지 않아도 그대로 런타임으로 실행이 가능하기 때문이다.

예를 들어,

Never

: Never는 사실상 거의 쓸일이 없긴 하지만 알아두자.
위와 같이 에러를 throw하는 함수의 리턴값으로 never를 설정해주거나(디폴트로 never로 설정된다 에러를 throw하는 경우 아래와 같이) 추가로 위의 분기처리를 보면 마지막 else문에서의 age는 자동으로 never타입으로 추론하는 것을 볼 수 있다.

profile
완벽함 보다는 최선의 결과를 위해 끊임없이 노력하는 개발자

0개의 댓글