PassFront
  1. PassFront
  2. База знаний
  3. Utility Types

Что такое 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

Другие вопросы раздела