티스토리 뷰
유틸리티 타입
TypeScript의 유틸리티 타입은 코드의 가독성과 재사용성을 높여주는 하나의 도구입니다. 대표적으로 Pick, Omit, Patial, Record가 있으며, 이러한 유틸리티 타입을 통해 코드 작성과 유지보수를 더 쉽게 할 수 있습니다. 유틸리티 타입은 이미 정의되어 있는 타입 구조를 변경하여 재사용 하고 싶을때 주로 사용됩니다.
다양한 유틸리티 타입 알아보기
1. Pick<Type, Keys>
Pick은 주어진 타입에서 특정 속성만 선택하여 새 타입을 생성하는 유틸리티 타입입니다. 객체의 일부 속성만 사용할 때 유용합니다.
아래의 예제에 있는 UserName 타입은 User에서 name 속성만 선택해 새로 만들어진 타입입니다.
type User = {
id: number;
name: string;
email: string;
};
type UserName = Pick<User, "name">; // { name: string }
2. Omit<Type, Keys>
Omit은 주어진 타입에서 특정 속성을 제외하고 새 타입을 만드는 유틸리티 타입입니다. 필요하지 않은 속성을 제외하고 싶을 때 유용합니다.
아래의 예제에 있는 UserWithoutEmail 타입은 User에서 email 속성을 제외한 타입입니다.
type User = {
id: number;
name: string;
email: string;
};
type UserWithoutEmail = Omit<User, "email">; // { id: number; name: string }
3. Partial<Type>
Partial은 주어진 타입의 모든 속성을 선택 사항(optional)으로 만드는 유틸리티 타입입니다. 객체의 일부분만 필요하거나 초기화할 때 유용합니다.
아래의 예제에 있는 PartialUser 타입의 모든 속성은 선택 사항이 되어, 일부 속성만 포함된 객체를 사용할 수 있습니다.
type User = {
id: number;
name: string;
email: string;
};
type PartialUser = Partial<User>; // { id?: number; name?: string; email?: string }
4. Record<Keys, Type>
Record는 지정한 키 유형에 따라 값을 지정하여 객체를 정의할 수 있게 하는 유틸리티 타입입니다. 정확히 어떤 키와 값을 가져야 하는 객체를 정의할 때 유용합니다.
아래의 예제에 있는 Permissions 타입은 각 Role(admin, user, guest)에 boolean 값을 할당할 수 있는 객체입니다.
type Role = "admin" | "user" | "guest";
type Permissions = Record<Role, boolean>; // { admin: boolean; user: boolean; guest: boolean }
- Total
- Today
- Yesterday