Sobes.tech
Middle+

Troisième partie de la tâche TypeScript : créez un nouveau type basé sur le type Delivery, où tous les champs sont optionnels (peuvent avoir la valeur undefined) et ne peuvent pas modifier leur valeur (readonly). Utilisez les types utilitaires Partial et Readonly.

sobes.tech IA

Réponse de l'IA

В TypeScript можно создать новый тип, который делает все поля исходного типа Delivery опциональными и readonly, используя утилитарные типы Partial и Readonly вместе:

type Delivery = {
  address: string;
  date: Date;
  cost: number;
};

// Новый тип с опциональными и readonly полями
type ReadonlyPartialDelivery = Readonly<Partial<Delivery>>;

// Пример использования
const delivery: ReadonlyPartialDelivery = {
  address: '123 Main St'
};
// delivery.address = '456 Other St'; // Ошибка: нельзя изменять readonly поле

Partial<T> делает все поля типа T опциональными, а Readonly<T> — делает все поля только для чтения. Их комбинация позволяет получить тип с опциональными и неизменяемыми полями.