Что такое Partial в TypeScript

Ответ

Partial<T> — это утилитарный тип в TypeScript, который делает все свойства типа T необязательными. Это полезно, когда нужно создать объект с частичными значениями, например, для обновления или инициализации.

Пример:

interface User {
  id: number;
  name: string;
  age: number;
}

const updateUser: Partial<User> = {
  name: "John" // можно указать только нужные поля
};

Особенности:

  • Все свойства становятся ?:
  • Полезен для DTO, патчей, дефолтных значений
  • Не влияет на методы, только на свойства

Аналог ручного написания:

type ManualPartial<T> = {
  [P in keyof T]?: T[P];
};

Осторожно: Partial не проверяет, что хотя бы одно свойство будет задано. Для строгой проверки используйте Required<Partial<T>> или кастомные решения.