타입스크립트 - 유틸리티 타입

Omit<T,K>

T에서 모든 프로퍼티를 선택한 다음 K를 제거한 타입을 구성
(pick의 반대)

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

type shoppingItem = Omit<Product, "stock">;

const apple: Omit<Product, "stock"> = {
  id: 1,
  name: "red apple",
  price: 1000,
  brand: "del"
};
 

Pick<T,K>

T에서 프로퍼티 K의 집합을 선택해 타입을 구성

interface Todo {
    title: string;
    description: string;
    completed: boolean;
}

type TodoPreview = Pick<Todo, 'title' | 'completed'>;

const todo: TodoPreview = {
    title: 'Clean room',
    completed: false,
};

ex)

export interface Props
  extends Pick<React.InputHTMLAttributes<HTMLInputElement>, "checked"> {
  labelText?: string;
  onCheck?: (isChecked: boolean) => void;
}

타입 표명(Type Assertion)

타입이 없는 JS파일과 함께 써야하는 경우에 불가피하게 써야하는 경우가 있다.

JS는 타입이 없어서 TypeScript는 Compile단계에서 확인하지 못한다. 이때 사용자(개발자)가 JS의 변수나 리턴값에 대한 타입을 확신한다고 TypeScript를 안심시키기 위해 Type Assertion을 사용한다.

as

좋은 웹페이지 즐겨찾기