Sobes.tech
Назад к вопросам
Middle
1

В чём отличие unknown от any в TypeScript?

Компании, где спрашивали
X-Notes

Ответ от нейросети

sobes.tech AI

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

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

  • unknown — более безопасный аналог any. Значение типа unknown можно присвоить только переменной типа 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 отключает все проверки.