Тип unknown в typescript



Зачем нужен unknown если есть any?



1. Компилятор не даст присвоить типизированной переменной значение типа unknown,

такой код вызовет ошибку



let x: unknown = 'string';

let string: string = x; // Ошибка





2. Компилятор не даст вызвать метод или взять свойство переменной типа unknown без проверки на тип





let array: unknown = [1,2,3];

array.map(item => item); // Ошибка

array.length; // Ошибка

if (array instanceof Array) {

array.map(item => item); // Нет ошибки

array.length; // Нет ошибки

}





Таким образом тип unknown, в отличие от any предотвращает ошибки на раннем этапе



#js #typescript