모든 속성들을 optional하게 변경한다.
모든 속성들을 required 속성으로 만들어준다. Partial과 반대
모든 속성들을 읽기 전용(readOnly)으로 설정한 타입을 구성한다. 즉 모든 속성들의 값을 변경할 수 없고 참조만 할 수 있도록 만든다.
주어진 타입 T에서 null과 undefined를 제외한 타입을 구성한다.
T의 return type을 그대로 할당한다.
type T0 = ReturnType<() => string>; // string
type T1 = ReturnType<(s: string) => void>; // void
특정 타입에서 몇 개의 속성을 선택하여 타입을 정의한다.
interface Product {
id: number;
name: string;
price: number;
brand: string;
stock: number;
}
type shoppingItem = Pick<Product, "id" | "name" | "price">;
특정 속성만 제거한 타입을 정의한다. Pick과 반대
interface Product {
id: number;
name: string;
price: number;
brand: string;
stock: number;
}
type shoppingItem = Omit<Product, "stock">;