На основе типа Delivery создать новый тип, где поля name, address и date станут необязательными (Partial).

Используйте Omit для сохранения остальных полей и Partial<Pick<...>> для превращения только name, address и date в необязательные.

Короткий ответ

Что ответить на собеседовании

Используйте 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 не сняло бы обязательность выбранных полей.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее