> Что такое типы any и unknown в TypeScript (TypeScript)

Уровень: junior · Роль: frontend · Категория: Технические вопросы

Компании: Иннотех, Инрэко, Kvando Technologies, Soft_Media_Group, ООО Премиум ИТ Солюшен, IT-One, Swetec, ПСБ, EdenAI, Арго, HolyWeb, SmartWay, Altenar

Стек: TypeScript

> Пример ответа

any и unknown - это два специальных типа в TypeScript, которые позволяют обходить строгую типизацию, но с разными уровнями безопасности.

any - это «отключатель» проверки типов. Переменная с типом any может принимать любое значение, и вы можете вызывать на ней любые методы, свойства или присваивать её куда угодно без ошибок компиляции. Это полезно при миграции с JavaScript или работе с динамическими данными, но злоупотребление any сводит на нет преимущества TypeScript.

unknown - это типобезопасная альтернатива any. Переменная с типом unknown также может содержать любое значение, но перед использованием её нужно явно проверить (например, через typeof, instanceof или приведение типов). Компилятор не позволит выполнять с ней операции, пока тип не будет уточнён.

Пример:

TYPESCRIPT
let a: any = "hello";
let b: unknown = "hello";
a.toUpperCase(); // OK, компилятор не проверяет
b.toUpperCase(); // Ошибка: Object is of type 'unknown'
// Правильная работа с unknown:
if (typeof b === "string") {
b.toUpperCase(); // OK, после проверки
}

Ключевое различие: any снимает всю защиту типов, unknown требует явной проверки, заставляя писать более надёжный код. В современном TypeScript рекомендуется избегать any и использовать unknown, когда тип заранее неизвестен.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью