Что такое Partial в TypeScript?
Utility Types
`Partial<T>` — встроенный utility type, который делает все свойства типа необязательными.
interface User {
name: string;
email: string;
age: number;
}
function updateUser(id: string, patch: Partial<User>) {
// patch может содержать любые поля User или ни одного
}
updateUser('1', { email: 'new@mail.ru' });Как устроен
type Partial<T> = { [K in keyof T]?: T[K] };Где применяют
- объекты обновления (patch) и черновики форм;
- значения по умолчанию, которые мержатся с настройками.
Нюансы
- Действует только на верхний уровень: вложенные объекты остаются обязательными. Для глубокого варианта пишут свой
DeepPartial. - Обратный тип —
Required<T>.
Коротко для собеседования
Partial<T> делает все поля T необязательными через mapped type; удобно для частичных обновлений.
Подробнее: TypeScript — Utility Types