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 — это "путь наименьшего сопротивления" без контроля типов.