Skip to content

Latest commit

 

History

History
8 lines (7 loc) · 1.28 KB

any-unknown-never.md

File metadata and controls

8 lines (7 loc) · 1.28 KB

타입스크립트에서 any 와 unknown, never 타입의 차이점

  • unknown 은 타입스크립트의 최상위 타입이다. 따라서 타입스크립트에 존재하는 모든 타입을 할당 할 수 있다. 다시 말해서 모든 타입의 공통적인 연산 밖에 할 수 없고, 할당된 값이 어떤 타입인지 모르기 때문에 함부로 해당 타입에만 존재하는 프로퍼티 접근 혹은 연산을 할 수 없습니다.
    • 따라서 unkwnon 은 타입가드를 필요로 하여 런타임에러를 방지하기 때문에 unkwon 을 더 선호합니다.
  • any 는 타입 검사를 항상 만족한다. 따라서 모든 타입의 연산을 할 수 있고, unknown 처럼 존재하지 않는 프로퍼티에 접근해도 컴파일러는 아무런 에러를 띄워주지 않느고 런타임에러를 띄운다.
  • never 는 모든 타입의 하위 타입이다. 따라서, 그 어떤 값도 never 타입에 할당 할 수 없다.
    • 그러면 never 를 언제 사용하냐? 함수가 아무것도 반환하지 않아야 할 때, never 를 반환타입으로 지정하여 타입추론 예외를 제거한다.
    • 반환 타입을 void 로 했을 때와 차이점은 void 는 null 혹은 undefined 값의 반환을 허용한다는 것이고, never 는 그렇지 않다는 것이다.