[typescript] 인덱스 타입을 활용한 타입 가드 함수 작성 방법
TypeScript에서는 인덱스 타입(index type)을 활용하여 유연한 타입 시스템을 구성할 수 있습니다. 타입 가드 함수를 작성하여 런타임 중에 동적인 타입을 안전하게 다룰 수 있습니다. 이 글에서는 인덱스 타입을 활용한 타입 가드 함수를 작성하는 방법에 대해 알아보겠습니다.
인덱스 타입이란?
TypeScript의 인덱스 타입은 객체의 속성을 다른 타입으로 매핑하는 방법을 제공합니다. 이를 통해 객체의 특정 속성을 동적으로 다룰 수 있게 됩니다.
예를 들어, 다음과 같이 Person
이라는 인터페이스를 정의하고, 이를 name
속성의 타입으로 활용할 수 있습니다.
interface Person {
name: string;
age: number;
}
type NameType = Person['name']; // string
타입 가드 함수 작성하기
타입 가드 함수를 작성할 때 인덱스 타입을 활용하면, 동적인 속성에 대한 안전한 타입 검사를 수행할 수 있습니다.
예를 들어, 다음과 같이 User
라는 인터페이스를 정의하고, isOnline
속성의 존재 여부에 따라 동적인 타입을 반환하는 타입 가드 함수를 작성할 수 있습니다.
interface User {
id: number;
username: string;
isOnline: boolean;
}
function isUserOnline(user: User, prop: keyof User): prop is 'isOnline' {
return prop === 'isOnline';
}
// 사용 예
const user: User = { id: 1, username: 'john_doe', isOnline: true };
if (isUserOnline(user, 'isOnline')) {
// user.isOnline을 안전하게 사용할 수 있음
}
마무리
인덱스 타입을 활용한 타입 가드 함수를 작성하면, 동적으로 변화하는 속성에 대한 안전한 타입 검사를 수행할 수 있습니다. 이를 통해 TypeScript 코드의 안정성을 높일 수 있습니다.
참고 자료: TypeScript Handbook - Index types
본 포스팅은 TypeScript의 인덱스 타입을 활용한 타입 가드 함수 작성 방법에 대해 다루고 있습니다. 인덱스 타입과 타입 가드 함수에 대한 자세한 내용은 TypeScript 공식 핸드북를 참고하시기 바랍니다.