unknown 是 TypeScript 3.0 引入的一种类型,它用于表示任何类型,但与 any 类型不同, unknown 类型的变量在没有进行类型检查或类型断言之前不能被直接使用。这使得 unknown 成为一种更安全的方式来处理不确定的类型,因为它强制进行类型检查。
typeof
、instanceof
或自定义类型守卫函数),可以将 unknown 类型的变量缩小到更具体的类型。赋值规则:可以把任何类型的值赋给 unknown 类型的变量,但是 unknown 类型的值只能赋值给 any 或 unknown 类型的变量。
类型缩小:unknown 类型的变量可以通过类型守卫来缩小类型,从而确定具体的类型。