티스토리 뷰

유틸리티 타입

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
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31