ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Utility Types ( Partial, Required, Pick&Omit )
    Computer Science/TypeScript 2023. 10. 21. 22:28

    1. Utility Type이란

    2. Partial

    3. Required

    4. Pick & Omit


    1. Utility Type 이란

    타입스크립트에서 기존에 존재하는 타입을 변환하여 새로운 타입을 만들어내는 데 사용되는 일련의 제네릭 타입.

    Utility Type을 통해 더 유연하게 타입을 조작하고 제공할 수 있다.

     

    2. Partial

    객체의 모든 속성을 옵셔널 타입으로 만들어준다.

    주로 API에서 받아온 데이터의 형태가 일정하지 않거나, 일부 데이터만 필요할 때 사용된다.

    interface Product {
      id: number;
      name: string;
      price: number;
      description?: string;
    }
    
    function updateProduct(product: Partial<Product>) {
     
    }

    id, name, price, description 중 일부만 있어도 가능하도록 만들어준다.

     

    3. Required

    Partial 과는 달리 모든 속성을 필수 타입으로 만들어준다.

    주로 API에서 사용자가 제출한 데이터가 모든 필드가 채워져야할 때 등에 사용된다.

    interface FormInput {
      name?: string;
      email?: string;
      password?: string;
    }
    
    function submitForm(input: Required<FormInput>) {
    
    }

    name, email, password가 전부 존재해야한다.

     

    4. Pick&Omit

    Pick은 기존 타입에서 특정 속성을 선택해서 사용하는 것이고

    Omit은 기존 타입에서 특정 속성을 제거해서 사용하는 것이다.

    interface User {
      name: string;
      email: string;
      age: number;
    }
    
    type NewUserType = Pick<User, 'name' | 'age'>;
    
    const user: NewUserType = {
        name: "",
        age: 1,
    };
    
    type NewUserType2 = Omit<User, 'email'>;
    
    const user2: NewUserType2 = {
        name: "",
        age: 1,
    };

    새로운 타입을 만드는 것에 비해 얻을 수 있는 이점은 예를 들어 email의 타입이 string이 아닌 특정 형태로 바뀐다면 새로운 타입을 만드는 방식은 기존 타입의 email과 새로운 타입의 email 두군데를 전부 바꾸어주어야하지만 Pick 과 Omit은 기존 타입만 변경해주면 된다는 점에서 편리하며 오류를 더 방지할 수 있다.

    'Computer Science > TypeScript' 카테고리의 다른 글

    [TypeScript] Declare 의 용도  (0) 2023.11.19
    Template Literal Type  (0) 2023.10.14
    infer  (1) 2023.09.30
    type vs interface  (0) 2023.09.22
    TSC vs Babel  (0) 2023.09.15
Designed by Tistory.