Вопрос проверяет понимание особенностей работы с optional полями в TypeScript, включая их влияние на типы и возможные ошибки.
В TypeScript optional поля — это свойства объекта, которые могут отсутствовать или быть равными undefined. Они обозначаются знаком вопроса после имени поля, например: name?: string. Это означает, что тип поля — string | undefined, но с дополнительным поведением: при доступе к такому полю TypeScript требует проверки на undefined.
obj.name.toUpperCase() вызовет ошибку, так как name может быть undefined.?., который позволяет безопасно обращаться к вложенным свойствам: obj?.name?.toUpperCase().interface User {
name?: string;
age: number;
}
function greet(user: User) {
// Ошибка: Object is possibly 'undefined'
// console.log(user.name.toUpperCase());
// Правильно: проверка или optional chaining
console.log(user.name?.toUpperCase() ?? 'Anonymous');
}
greet({ age: 25 }); // Выведет 'Anonymous'
greet({ name: 'Alice', age: 30 }); // Выведет 'ALICE'Optional поля полезны для описания необязательных свойств, но требуют аккуратной обработки undefined. Используйте optional chaining и значения по умолчанию, чтобы избежать ошибок и сделать код безопаснее.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию