반응형

📝Awaited<Type>

type A = Awaited<Promise<string>>;
// type A = string
type B = Awaited<Promise<Promise<number>>>;
// type B = number
type C = Awaited<boolean | Promise<number>>;
// type C = number | boolean

프로미스(Promise)가 resolve된 후의 타입을 나타내는 유틸리티 타입입니다

📝Partial<Type>

interface Todo {
  title: string;
  description: string;
}
 
function updateTodo(todo: Todo, fieldsToUpdate: Partial<Todo>) {
  return { ...todo, ...fieldsToUpdate };
}
 
const todo1 = {
  title: "organize desk",
  description: "clear clutter",
};
 
const todo2 = updateTodo(todo1, {
  description: "throw out trash",
});

기존 타입의 구조를 유지하면서 모든 필드를 필수가 아닌 선택적으로 변경할 수 있습니다

 

📝Required<Type>

interface Props {
  a?: number;
  b?: string;
}
 
const obj: Props = { a: 5 };
const obj2: Required<Props> = { a: 5 };
// Property 'b' is missing in type '{ a: number; }' but required in type 'Required<Props>'.

해당 필드에 내용이 반드시 필요하다는 선언이 가능합니다

 

📝Readonly<Type>

interface Todo {
  title: string;
}
 
const todo: Readonly<Todo> = {
  title: "Delete inactive users",
};
 
todo.title = "Hello";
Cannot assign to 'title' because it is a read-only property.

생성된 유형의 속성을 재할당할 수 없습니다

 

📝Record<Keys, Type>

Record <K, V>

export enum categoryEnum {
  FC12000000 = 'FC12000000',
  FC14000000 = 'FC14000000',
}

static readonly names: Record<categoryEnum, string> = {
    FC12000000: '취미 / 문구 / 도서',
    FC14000000: 'e쿠폰 / 여행 / 렌탈',
}

Typescript에서는 Record라는게 존재하는데 이것은 Map과 같이 Key, Value로 사용 가능한 타입이다

 

📝Pick<Type, Keys>

interface Todo {
  title: string;
  description: string;
  completed: boolean;
}
 
type TodoPreview = Pick<Todo, "title" | "completed">;
 
const todo: TodoPreview = {
  title: "Clean room",
  completed: false,
};

속성 집합(문자열 리터럴 또는 문자열 리터럴의 합집합) 을 선택하여 유형을 구성합니다

 

📝Omit<Type, Keys>

interface Todo {
  title: string;
  description: string;
  completed: boolean;
  createdAt: number;
}
 
type TodoPreview = Omit<Todo, "description">;
 
const todo: TodoPreview = {
  title: "Clean room",
  completed: false,
  createdAt: 1615544252770,
};

(문자열 리터럴 또는 문자열 리터럴의 합집합) 에서 모든 속성을 선택한 Type다음 제거 하여 유형을 구성합니다

반응형