[Typescript] any와 unknown 타입

Narcoker·2025년 3월 18일

Typescript

목록 보기
4/15

any

특정 변수의 타입을 확실히 모를 때 사용하는 문법

어떤 타입이던지 허용한다.

모든 타입의 값을 허용하며,
모든 타입의 변수에 any 타입의 변수를 할당할 수 있다.

let anyVar: any = 10;
anyVar = "hello";
anyVar = true;
anyVar = {};
anyVar = () => {};

anyVar.toUpperCase();
anyVar.toFixed();

let num: number = 10;
num = anyVar;

단 이 코드를 컴파일하고 실행하면 에러가 발생한다.
즉, 타입스크립트의 이점을 모두 포기하는 것과 같다.

따라서 가능한 최대한 사용하지 않는 것이 좋다.

unknown

any와 유사하게 모든 타입을 허용하지만
모든 타입의 변수에 할당할 수 없다.

또한 any 타입에서 허용됐던 메서드 사용이 허용하지 않는다.
그리고 연산자 사용 또한 허용하지 않는다.

위 사항들을 사용하기 위해서는
다음과 같이 unknown 타입이 어떤 타입(ex. Number)인지를 지정해줘야 한다.
이 방식을 타입 정제 또는 타입 좁히기 라고 한다.

let unknownVar: unknown;

unknownVar: "";
unknownVar: 1;
unknownVar: () => {};

if(typeof unknownVar === "number"){
	num = unknownVar;
  	unknownVar.toString();
}

any와 다르게 unknown을 사용하면 조금 더 안전하기 때문에
필요한 경우, any 보다 unknown을 사용하는 것이 좋다.

출처

인프런 - 한 입 크기로 잘라먹는 타입스크립트

profile
열정, 끈기, 집념의 Frontend Developer

0개의 댓글