Dev./javascript

[TS] any와 unknown의 차이

인쥭 2022. 8. 28. 23:15
반응형

TL;DR

  • any: 대상에 대한 타입 검사를 포기한다. 즉, TS를 사용하는 이유를 무색하게 만드므로 사용을 지양하는 것이 바람직하다.
  • unknown: 아직은 대상의 타입을 알 수 없으나, 반드시 명시적으로 형변환 또는 타입 가드를 적용하여 안전하게 사용해야 한다.

때문에 반드시 any 대신 unknown을 사용해야 한다!

  • 타입 가드의 경우, 원시 타입이라면 typeof / 인스턴스라면 instanceof / 객체라면 in 연산자 등을 활용할 수 있다.
  • 그 이외의 경우에 사용자 정의 타입 가드를 구현할 수 있다.