Sobes.tech
Back to questions
Middle+
1

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

Companies where asked
М.Видео/эльдорадо

Answer from AI

sobes.tech AI

В TypeScript any и unknown — это типы, которые позволяют работать с любыми значениями, но между ними есть важные отличия:

  • any отключает проверку типов. Переменная с типом any может быть присвоена чему угодно, и с ней можно делать любые операции без ошибок компиляции. Это снижает безопасность типов.

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

Пример:

let a: any = 10;
let u: unknown = 10;

let num1: number = a; // ОК
// let num2: number = u; // Ошибка компиляции

if (typeof u === 'number') {
  let num2: number = u; // ОК после проверки
}

Таким образом, unknown помогает писать более безопасный код, заставляя явно обрабатывать типы, а any — это "путь наименьшего сопротивления" без контроля типов.