Назад к вопросам
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 отключает все проверки.