Проверяет умение обрабатывать ошибки с типом unknown в TypeScript для обеспечения типобезопасности.
В TypeScript тип unknown является типобезопасной альтернативой any. Он представляет значение, тип которого неизвестен на момент написания кода. В отличие от any, с unknown нельзя выполнять произвольные операции без предварительной проверки типа. Это особенно полезно при обработке ошибок в блоке catch, где по умолчанию ошибка имеет тип unknown (начиная с TypeScript 4.0).
Для работы с unknown необходимо сузить его тип. Самый распространенный способ — использовать проверку instanceof Error. Если ошибка является экземпляром класса Error, можно безопасно получить доступ к свойствам message, name и stack. Если тип ошибки неизвестен, можно проверить, является ли она объектом с полем message.
try {
// код, который может выбросить ошибку
} catch (error: unknown) {
if (error instanceof Error) {
console.log(error.message);
} else if (typeof error === 'string') {
console.log(error);
} else if (error && typeof error === 'object' && 'message' in error) {
console.log((error as { message: string }).message);
} else {
console.log('Неизвестная ошибка');
}
}unknown вместо any в блоке catch для повышения типобезопасности.as any — это снижает безопасность.Обработка unknown ошибок в TypeScript требует явного сужения типа, что делает код более предсказуемым и защищает от ошибок времени выполнения. Этот подход рекомендуется применять во всех проектах на TypeScript для обработки исключений.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию