Чем тип unknown отличается от any в TypeScript?

any отключает проверку допустимых операций, а unknown требует сначала сузить или проверить тип. Оба принимают значения произвольных типов.

Короткий ответ

Что ответить на собеседовании

any отключает проверку допустимых операций, а unknown требует сначала сузить или проверить тип. Оба принимают значения произвольных типов.

Подробный разбор

Ответ с пояснениями

any отключает проверку допустимых операций, а unknown требует сначала сузить или проверить тип. Оба принимают значения произвольных типов.

Со значением any можно обратиться к несуществующему свойству без ошибки компилятора и получить сбой позже. Для unknown сначала нужна проверка, например typeof value === 'string', type guard или иной обоснованный способ уточнения. Поэтому unknown удобнее для непроверенных внешних данных. Приведение через as не выполняет реальную валидацию и может скрыть ошибку.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее