패스잇
프론트엔드 개발 · 중급

TypeScript에서 여러 타입 중 특정 타입의 값을 안전하게 처리하기 위해 사용하는 타입 가드(Type Guards)의 종류와 각각의 사용 사례를 설명해 주세요.

힌트 · `typeof`, `instanceof`, `in` 연산자와 사용자 정의 타입 가드를 활용하여 런타임에 타입을 확인하고 범위를 좁히는 방법을 설명합니다.

typeofinstanceofin 연산자사용자 정의 타입 가드타입 좁히기

모범답안

타입스크립트에서 타입 가드는 여러 타입이 섞여 있을 때 특정 타입의 값을 안전하게 다루기 위해 사용합니다. 런타임에 타입을 확인하고 범위를 좁혀서 타입 에러를 방지하죠.

가장 기본적인 건 typeof 연산자입니다. 원시 타입(string, number, boolean 등)을 구분할 때 유용합니다. 예를 들어 typeof x === 'string'처럼 사용해서 문자열인 경우에만 특정 로직을 실행할 수 있습니다.

instanceof 연산자는 클래스의 인스턴스를 확인할 때 씁니다. x instanceof MyClass처럼 사용해서 특정 클래스의 인스턴스인 경우에만 해당 클래스의 메서드를 호출할 수 있습니다.

in 연산자는 객체에 특정 프로퍼티가 있는지 확인할 때 사용합니다. 'name' in x처럼 사용해서 객체 x에 'name' 프로퍼티가 있는 경우에만 접근할 수 있습니다.

마지막으로 사용자 정의 타입 가드를 만들 수도 있습니다. x is MyType 형태의 반환 타입을 가지는 함수를 만들어서 복잡한 타입 조건을 검사할 수 있습니다. 이를 통해 타입 체커에게 특정 조건 하에서 변수의 타입을 알려줄 수 있습니다.

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

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

함께 보는 TypeScript 면접 질문

← TypeScript 면접 질문 전체 보기