Partial<T>
interface Todo {
title: string;
description: string;
}
const updateTodo = (todo: Partial<Todo>) => {
// 일부 또는 모든 속성을 업데이트할 수 있음
};
updateTodo({ title: "New Title" });
Required<T>
모든 속성을 필수로 만드는 타입
interface Todo {
title?: string;
description?: string;
}
const todo: Required<Todo> = {
title: "Title",
description: "Description"
};
Readonly<T>
모든 속성을 읽기 전용으로 만드는 타입
interface Todo {
title: string;
description: string;
}
const todo: Readonly<Todo> = {
title: "Title",
description: "Description"
};
// todo.title = "New Title"; // 오류 발생: 읽기 전용 속성은 수정할 수 없음
Record<K, T>
특정 키(K
)와 값의 타입(T
)으로 구성된 객체 타입을 만드는 타입
type Page = "home" | "about" | "contact";
const pageInfo: Record<Page, string> = {
home: "/home",
about: "/about",
contact: "/contact"
};
Pick<T, K>
interface Todo {
title: string;
description: string;
completed: boolean;
}
type TodoPreview = Pick<Todo, "title" | "completed">;
const todo: TodoPreview = {
title: "Title",
completed: false
};
Omit<T, K>
interface Todo {
title: string;
description: string;
completed: boolean;
}
type TodoPreview = Omit<Todo, "description">;
const todo: TodoPreview = {
title: "Title",
completed: false
};