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
.