본문 바로가기

개발이야기/Javascript

TypeScript: Partial, Pick, Omit을 이용한 타입 커스터마이징

728x90

Typescript의 유틸리티 타입은 코드의 재사용성을 높이고, 타입 안전성을 강화하는 데 도움을 줍니다. 여기서는 Partial<T>, Pick<T, K>, Omit<T, K> 같은 유틸리티 타입을 자세히 살펴보겠습니다.

 

1. Partial<T>

Partial<T> 유틸리티 타입은 T 타입의 모든 속성을 선택적(Optional)으로 만듭니다. 이는 객체의 일부 속성만 업데이트할 때 유용하며, 모든 속성을 필수로 하지 않아도 됩니다. 예를 들어, 사용자 프로필 정보를 부분적으로 업데이트하는 경우에 적합합니다.

interface MemberParams {
    username: string;
    phone: string;
    password: string;
}

type PartialMemberParams = Partial<MemberParams>;

const updateMember: PartialMemberParams = {
    phone: '010-1234-5678', // username과 password는 선택적
};

 

2. Pick<T, K>

Pick<T, K> 유틸리티 타입은 T 타입에서 K에 해당하는 속성들만 선택하여 타입을 구성합니다. 특정 기능에 필요한 속성만 추출할 때 유용하며, 오버페칭(over-fetching)을 방지할 수 있습니다.

type MemberContactInfo = Pick<MemberParams, 'phone' | 'username'>;

const contactInfo: MemberContactInfo = {
    phone: '010-1234-5678',
    username: 'john_doe',
};

 

3. Omit<T, K>

Omit<T, K> 유틸리티 타입은 T 타입에서 K에 해당하는 속성을 제외한 나머지 속성들로 타입을 구성합니다. 특정 속성을 숨기거나 민감한 정보를 제외하고 타입을 정의할 때 사용됩니다.

type MemberWithoutPassword = Omit<MemberParams, 'password'>;

const memberInfo: MemberWithoutPassword = {
    username: 'john_doe',
    phone: '010-1234-5678',
};

 

 

이러한 유틸리티 타입들은 Typescript에서 타입을 더 유연하고 안전하게 다루기 위한 강력한 도구입니다. 코드의 재사용성을 높이고, 유지 보수성을 개선하며, 타입 안전성을 강화하는 데 큰 도움이 됩니다.

Typescript의 유틸리티 타입을 사용함으로써 개발자는 보다 선언적이고 명확한 타입 정의를 통해 안정적인 애플리케이션 개발을 진행할 수 있습니다. 타입스크립트의 강력한 타입 시스템을 활용하여 보다 정교한 타입 조작과 추상화를 실현할 수 있으며, 이를 통해 코드의 가독성과 유지보수성을 대폭 향상시킬 수 있습니다.