Sobes.tech
Middle+

TypeScript-ի առաջադրանքի երրորդ մասը՝ ստեղծել նոր տիպ՝ հիմնված Delivery տիպի վրա, որի բոլոր դաշտերը ընտրովի են (կարող են ունենալ undefined արժեք) և չեն կարող փոխել իրենց արժեքը (readonly): Օգտագործեք utility տիպեր Partial և Readonly։

sobes.tech AI

Պատասխան 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> — делает все поля только для чтения. Их комбинация позволяет получить тип с опциональными и неизменяемыми полями.