Используйте Omit для сохранения остальных полей и Partial<Pick<...>> для превращения только name, address и date в необязательные.
На основе типа Delivery создать новый тип, где поля name, address и date станут необязательными (Partial).
Используйте Omit для сохранения остальных полей и Partial<Pick<...>> для превращения только name, address и date в необязательные.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Используйте Omit для сохранения остальных полей и Partial<Pick<...>> для превращения только name, address и date в необязательные.
type OptionalDeliveryFields = 'name' | 'address' | 'date';
type DeliveryDraft =
Omit<Delivery, OptionalDeliveryFields> &
Partial<Pick<Delivery, OptionalDeliveryFields>>;
Предполагается, что эти три ключа существуют в Delivery. Остальные свойства сохраняют свою обязательность и типы. Partial<Delivery> сделал бы необязательным весь объект, а пересечение с исходным Delivery не сняло бы обязательность выбранных полей.