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