패스잇
프론트엔드 개발 · 기초

TypeScript의 기본 타입(Basic Types) 중 'string', 'number', 'boolean' 외에 'any'와 'unknown' 타입은 각각 어떤 용도로 사용되며, 둘의 차이점은 무엇인가요?

힌트 · 'any'는 모든 타입을 허용하여 타입 검사를 비활성화하고, 'unknown'은 타입 검사를 유지하면서도 유연성을 제공합니다.

타입 검사컴파일 타임런타임타입 단언타입 안정성

모범답안

TypeScript에서 string, number, boolean 외에 anyunknown 타입은 유연성을 확보하기 위해 사용됩니다.

any는 모든 타입의 값을 허용하며, 사실상 타입 검사를 비활성화합니다. 컴파일 타임에 타입 에러를 발생시키지 않지만, 런타임 에러로 이어질 가능성이 있습니다.

unknown 역시 모든 타입의 값을 할당받을 수 있지만, any와 달리 타입 검사를 유지합니다. unknown 타입의 값을 사용하기 전에 타입 단언(Type Assertion)이나 타입 좁히기(Type Narrowing)를 통해 구체적인 타입을 명시해야 합니다.

둘의 가장 큰 차이점은 타입 안정성입니다. any는 타입 검사를 느슨하게 만들어 개발 편의성을 높이지만, 타입 안정성을 해칠 수 있습니다. 반면 unknown은 타입 검사를 통해 타입 안정성을 유지하면서도 유연성을 제공합니다. 따라서 가능한 한 unknown을 사용하는 것이 좋습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 TypeScript 면접 질문

← TypeScript 면접 질문 전체 보기