Проверяет понимание различий между типами unknown и any в TypeScript и их влияния на безопасность типов.
В TypeScript тип any полностью отключает проверку типов для переменной. Вы можете присвоить ей что угодно и использовать как угодно — компилятор не будет мешать. Это удобно при миграции с JavaScript, но опасно, так как ошибки могут проявиться только в рантайме.
Тип unknown — это безопасная альтернатива. Он также принимает любые значения, но запрещает использовать переменную без явной проверки или приведения типа. Это заставляет разработчика убедиться в корректности данных перед операциями.
let valueAny: any = 'hello';
valueAny.toUpperCase(); // работает, но может быть ошибка
let valueUnknown: unknown = 'hello';
// valueUnknown.toUpperCase(); // Ошибка: Object is of type 'unknown'
if (typeof valueUnknown === 'string') {
valueUnknown.toUpperCase(); // теперь безопасно
}
// Приведение типа
let length = (valueUnknown as string).length;any стоит использовать только в крайних случаях, например, при работе с динамическими данными из внешних источников, когда тип неизвестен и нет времени его описывать. Но лучше избегать его в новом коде.
unknown рекомендуется для API-функций, которые принимают данные неизвестного типа, например, из JSON-запросов. Это гарантирует, что вы явно проверите данные перед использованием.
Используйте unknown для повышения типобезопасности и предотвращения ошибок, а any — только как временное решение. Это делает код более предсказуемым и поддерживаемым.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию