![[TypeScript] any, unknown 특징 (unknown 사용 권장)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcF8AjD%2FbtsHESyucCZ%2FHVkwQ9ULVNy93feVMGKJ3k%2Fimg.png)
시작하기 앞서
현재 모던 리액트 Deep Dive 라는 책으로 스터디를 진행하고 있는데, 책에서 "any 대신 unknown을 사용하자" 라는 내용이 있었다.
사실 지금까지 타입스크립트를 작성하다가 모르겠는 타입은 any 로 지정했었다. 그런데 이 책을 읽고 unknown 이라는 타입을 알게 되고 any 보다는 unknown 을 사용하는 게 더 좋다 하여 해당 내용에 대해 자세히 알아보기 위해 글을 작성하게 되었다.
any
Documentation - Everyday Types
언어의 원시 타입들.
www.typescriptlang.org
간단하게 any 는 모든 타입을 허용한다. 그래서 모든 타입을 허용하여 타입 에러가 발생하지 않는다.

any 단점
any 는 편해 보이지만 무턱대로 사용하면 안 된다. 왜냐하면 any 를 사용하면 타입스크립트를 사용하는 의미가 없어지기 때문이다.
any 는 실제로 타입이 아니라 타입쉴드를 해제하게 되어 그냥 일반 자바스크립트 변수처럼 사용할 수 있게 된다.
즉, 타입스크립트가 에러를 잡아주지 못해 코드를 직접 실행해야 되는 런타임에서 에러가 발생한 것을 확인할 수 있게 된다.

그래서 이 때 any 대신 unknown 을 사용해야 한다고 한다. 그렇다면 unknwon 은 무엇일까?
unknown
Handbook - Basic Types
Step two in learning TypeScript: The basic types.
www.typescriptlang.org
unknown 은 any 와 비슷하게 모든 타입을 허용해 주며 용도는 똑같다.

unknown 장점
unknown 은 any 와 다르게 빌드타임에서 타입 검사를 하므로 안정성이 향상된다.
즉, any 의 단점인 타입 안정성을 보장해 주고 any 처럼 유연하게 타입을 허용하는 것이 바로 unknown 의 장점이다.

마치며...
결론적으로 타입스크립트를 사용할 때, 최대한 정확한 타입을 지정해 주면 좋지만
만약 불가피한 상황이 발생해서 타입을 단정지을 수 없는 경우 any 보다는 타입 안정성이 있는 unknown 을 사용하는 것이 좋다.

'💜 프론트엔드 > TypeScript' 카테고리의 다른 글
[TypeScript] 자바스크립트 대신 타입스크립트 사용하는 이유 🤔 (0) | 2024.05.26 |
---|---|
TypeScript 공부 #8 (0) | 2023.07.31 |
TypeScript 공부 #7 (0) | 2023.07.31 |
TypeScript 공부 #6 (0) | 2023.07.31 |
TypeScript 공부 #5 (0) | 2023.07.31 |
FE 개발자가 되고 싶은 짱잼이
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!