Typescript - 유틸리티(Pick, Omit)

본 내용은 인프런에서 캡틴판교님의 타입스크립트 강의를 듣고 정리한 것입니다.

유틸리티타입(제너릭타입)

Pick

특정 타입에서 필요한 부분을 뽑아쓸 때 사용한다.

interface Product {
  id: number
  name: string
  price: number
  brand: string
  stock: number
}

function fetchProducts(): Promise<Product[]> {} // 여기선 Product가 그대로 사용.

// 아래의 경우 Product의 일부만 필요할 때에 사용한다.

// interface ProductDetail {
//     id: number;
//     name: string;
//     price: number;
// }

// id,name,price만 있는 interface를 만들수도 있지만 아래처럼 Pick을 사용하여 필요한 부분만 뽑아서 사용할 수 있다.
type shoppingItem = Pick<Product, 'id' | 'name' | 'price'>
function displayProductDetail(shoppingItem: ShoppingItem) {}

Omit

특정 타입에서 사용할 것을 제외하고 쓰겠다!! Pick과는 반대되는 개념이다.

interface AddressBook {
  name: string
  id: number
  address: string
  company: string
}

// Omit<특정 타입, 제외할 속성>
const phoneBook: Omit<AddressBook, 'address'> = {
  name: 'sarah',
  id: 0,
  company: '한국',
}

const chingtao: Omit<AddressBook, 'address' | 'compnay'> = {
  name: 'sarah',
  id: 1,
}

@Sarah
개인적인 공부를 위해 만든 블로그입니다. 혹시 틀린 점이 있다면 메일로 남겨주시면 감사하겠습니다!

GitHubGmail