Опциональное поле
Все поля объектного типа по умолчанию обязательные: если поле объявлено, объект без него не соберётся.
Именно на это компилятор и ругается в задании:
Онлайн-редактор кода, разбор решения и отметки о прогрессе доступны после входа.
ВойтиСоздать аккаунт — бесплатноВсе поля объектного типа по умолчанию обязательные: если поле объявлено, объект без него не соберётся.
Именно на это компилятор и ругается в задании:
export type User = {
name: string;
email: string;
};
export const u1: User = {
name: "Макс",
email: "max@gmail.com"
};
export const u2: User = {
name: "Аня"
};Ошибка на u2: тип требует email, а его нет. Тип нужно сделать честнее: в реальном приложении почта может быть не указана, и это нормальное состояние, а не ошибка.
Для таких полей в TypeScript есть отдельная запись: поле помечается как необязательное, и тогда его можно не передавать. Важное следствие: тип значения у необязательного поля автоматически расширяется, к нему добавляется undefined, поэтому читать такое поле без проверки нельзя.
Подробнее: Optional Properties — справочник TypeScript.
Сделай так, чтобы name в типе User остался обязательным, а email стал необязательным: объект u2 без почты должен собираться без ошибок. Сами объекты u1 и u2 менять не нужно.