Что такое неизвестный тип и когда его использовать в TypeScript?
В Typescript неизвестному может быть присвоено любое значение, но без утверждения типа неизвестное не может быть присвоено ничему, кроме самого себя и любого. Точно так же никакие операции над неизвестным не допускаются без предварительного утверждения или ограничения его до более точного типа. подобно любому, мы можем присвоить неизвестному любое значение, точно так же, как и любому другому; даже в этом случае, в отличие от других, мы не можем получить доступ к каким-либо свойствам неизвестных значений, а также не можем вызывать или создавать их. Кроме того, неизвестные значения могут быть присвоены только неизвестным или любым.
Неизвестный тип используется, чтобы сделать наш код типобезопасным. когда мы используем неизвестный тип, нам приходится писать дополнительный код, но, в конце концов, наш код будет типобезопасным. Безопасность типов — это не что иное, как предотвращение ошибок типов.
Давайте разберемся, когда использовать неизвестные типы, а когда не использовать с помощью следующих примеров.
Пример 1: Когда переменным других типов значений присваивается значение unknown.
В этом примере неизвестной переменной присваиваются значения разных типов. мы видим, что это не вызывает никаких ошибок. неизвестный тип находится на вершине, когда речь заходит о типах переменных в Typescript.
Выход:
undefined true 7 geeks for geeks [ 1, 2, 3, 4 ] { name: "rachel" } 0.776446663785197 null undefined
Пример 2: неизвестное присваивается неизвестному и другим значениям типа
Как указано во введении, переменная неизвестного типа может быть присвоена только другой переменной неизвестного типа или переменной типа any. неизвестный тип отображается как «неопределенный».
Выход:
undefined undefined undefined
Пример 3: В этом примере мы попытались присвоить значение неизвестного типа переменной типа number, возникает ошибка.
Javascript
<script> let unknown: unknown; let num: number = unknown; // Error console.log(num); </script> |
Выход:
error TS2322: Type "unknown" is not assignable to type "number". let num: number = a; // Error
Пример 4: В машинописном тексте мы не можем выполнять операции со значениями неизвестного типа. Операции с типом объекта нельзя выполнять со значениями неизвестного типа.
Выход:
error TS2339: Property "split" does not exist on type "unknown".