icon

메티의 블로그

never, any, unknown, mixed 타입 비교

never, any, unknown, mixed 타입 비교

Tags
TypeScript
날짜
Mar 5, 2023
상태
공개
never
never일반적으로 함수의 리턴 타입으로 사용되는데, 함수가 항상 예외를 던지거나, 무한루프를 돌아 정상적인 값을 리턴 받을 수 없는 경우에 사용한다.
function throwError(message: string): never { throw new Error(message); }
function infiniteLoop(): never { while(true) { count++; } }
 
any
any는 모든 타입을 허용하고, 어떤 타입으로도 할당 가능하도록 (JS 처럼) 하는 타입이다. 그래서, 타입스크립트 컴파일러가 any 타입의 객체에 어떤 값에 접근 하려고 해도, 있던 없던 컴파일 시에는 문제가 생기지 않는다. 즉, 런타임에서 문제가 될 가능성이 매우 높다. 그래서 보통 잘 사용하지 않는다.
 
unknown
unknown은 모든 타입을 허용하지만, 어떤 타입이 올지 알 수 없다는 뜻이다. 그래서, 타입스크립트 컴파일러가 unknown 타입의 어떤 값에 아무런 타입 검증 없이 접근 하거나 연산하려고 하면, 컴파일 시에 문제가 반드시 생긴다. 어떤 값이든 올 수 있으므로 엄격하게 검사하라는 뜻이다.
 
mixed
mixed 는 array 에서 타입이 여러개 섞인 경우 사용한다. 이 경우 모든 경우를 커버 할 수 있도록 해야한다.

연관 포스트