Partial<T> является встроенным утилитарным типом в TypeScript, который позволяет создавать новый тип с теми же свойствами, что и существующий тип, но все эти свойства становятся необязательными.
Давайте рассмотрим пример использования. Предположим, у нас есть интерфейс Person:
interface Person {
name: string;
age: number;
}
Если мы хотим создать функцию, которая принимает объект Person, но все поля в этом объекте являются необязательными, мы можем использовать Partial<Person>, как показано ниже:
function updatePerson(person: Partial<Person>) {
// ...
}
Теперь функция updatePerson может принимать любой объект, который соответствует интерфейсу Person, независимо от того, присутствуют ли в нем все свойства или нет.
Утилитарный тип Partial<T> особенно полезен при работе с большими объектами, которые могут иметь множество необязательных полей. Он также может быть полезен при работе с объектами, которые участвуют в операциях обновления, где пользователь может предоставить только некоторые поля для обновления, а остальные поля остаются неизменными.
Стоит отметить, что Partial<T> не делает свойства объекта nullable. Он просто делает их необязательными, то есть позволяет отсутствовать, а не быть равными null.