📜  什么是未知类型以及何时在 TypeScript 中使用它?

📅  最后修改于: 2022-05-13 01:56:28.169000             🧑  作者: Mango

什么是未知类型以及何时在 TypeScript 中使用它?

在 Typescript 中,任何值都可以分配给 unknown,但是如果没有类型断言,unknown 不能分配给除了它自己和 any 之外的任何东西。类似地,如果不首先断言或限制为更精确的类型,则不允许对未知数进行任何操作。与 any 类似,我们可以为未知数分配任何值,就像其他任何值一样;即便如此,与任何情况不同,我们不能访问未知值的任何属性,也不能调用或构造它们。此外,未知值只能分配给未知或任何。

未知类型用于使我们的代码类型安全。当我们使用未知类型时,我们必须编写额外的代码,但最后,我们的代码将是类型安全的。类型安全只不过是防止类型错误。

借助以下示例,让我们了解何时使用未知类型以及何时不使用。

示例 1:当其他值类型的变量分配给未知时。

在此示例中,我们将不同类型的值分配给未知变量。我们可以看到它不会引发任何错误。当涉及到 Typescript 中的变量类型时,未知类型位于顶部。

Javascript


Javascript


Javascript


Javascript


输出:

undefined
true
7
geeks for geeks
[ 1, 2, 3, 4 ]
{ name: 'rachel' }
0.776446663785197
null
undefined

示例 2:将 unknown 分配给 unknown 和其他类型的值

正如在介绍中给出的,一个未知类型的变量只能分配给另一个未知类型的变量或任何类型的变量。未知类型显示为“未定义”。

Javascript


输出:

undefined
undefined
undefined

示例 3:在此示例中,我们尝试将未知类型的值分配给类型为 number 的变量,引发错误。

Javascript


输出:

error TS2322: Type 'unknown' is not assignable to type 'number'.
let num: number = a; // Error

示例 4:在 typescript 中,我们不能对未知类型的值执行操作。无法对未知类型值执行对象类型操作。

Javascript


输出:

error TS2339: Property 'split' does not exist on type 'unknown'.