[Typescript] any ? unknown?

dolfin·2023년 6월 28일

TypeScript

목록 보기
7/7
post-thumbnail

타입스크립트에는 any와 unknown 이라는 새로운 타입이 등장한다.

먼저,

any란?

영어 단어 뜻 그대로 어떤 것이든의 의미로 사용된다.
말그대로 어떤 타입이든 허용하는 타입이다.

타입을 엄격하게 체킹하는 타입스크립트의 목적과는 꽤나 상반된 타입이다.

let v : any = 10;
v = "hi"
v = true

어떤 타입으로든 재할당이 가능해지며
또한, 잘못된 메서드 사용시에도 오류가 나질 않는다.

let v : any = 10;

v.toUpperCase() // string 메서드 사용해도 에러가 없음

이 같은 코드는 타입스크립트 사용 목적과도 맞지 않지만 개발시 오류가 발생할 문제가 있기 때문에
사용을 자제 하는 것이 좋다.

unknown

unknown은 "알 수 없다" 는 뜻이다.
any 타입과 마찬가지로 모든 타입의 값을 허용한다.
다만, 할당된 값이 어떤 타입인지 모르기 때문에 연산을 할 수 없다.

let valueNum = 10;

valueNum.toUpperCase();

위와 같은 에러 메시지를 만나게 된다.
unknown 타입으로 변수를 정의하면 컴파일러에게 '변수의 타입이 unknown이라 어떤 값이든 올 수 있다. 그래서 엄격하게 검사해라'라고 말하는 것과 같다.

따라서 특정 변수가 당장 어떤 값을 받게 될 지 모른다면 any 타입으로 정의하는 것 보단 unknown 타입을 이용하는게 훨씬 안전하다.

출처 : https://developer-talk.tistory.com/198

profile
no risk no fun

0개의 댓글