Middle+
Trzecia część zadania z TypeScript: utwórz nowy typ na podstawie typu Delivery, w którym wszystkie pola są opcjonalne (mogą mieć wartość undefined) i nie mogą zmieniać swojej wartości (readonly). Użyj typów pomocniczych Partial i Readonly.
sobes.tech AI
Odpowiedź od AI
В 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> — делает все поля только для чтения. Их комбинация позволяет получить тип с опциональными и неизменяемыми полями.