在TypeScript
3.0中,引入了一个新的顶层类型unknown。unknown是any的安全对应类型。任何东西都可以赋值给unknown,但unknown只能赋值给自己和any,除非经过类型断言或基于控制流的缩小。同样,未经断言或缩小为更具体类型的情况下,不允许对unknown进行任何操作。
自2012年TypeScript的第一个版本发布以来,any类型一直存在于TypeScript中。它表示所有可能的JavaScript值,包括基本类型、对象、数组、函数、Error、Symbol以及您可能定义的任何其他值。它本质上是一个通配符,可以分配给任何类型,使它成为TypeScript类型系统中的顶层类型(也称为全局超类)。
随着unknown类型的引入,开发人员现在有了any的安全替代品。unknown的目的是鼓励更明确、更安全地处理变量类型,减少由意外值引起的运行时错误。要使用unknown类型的值,您必须首先使用类型断言或控制流分析将其类型断言或缩小为更具体的类型。
总之,TypeScript
3.0引入了unknown类型作为any类型的安全对应类型。虽然any允许进行不受限制的操作且无需检查,但unknown要求在对其值进行操作之前进行某种形式的检查或断言,因此它是一种更严格、更安全的替代方案。
地址: "https://www.typescriptlang.org/docs/handbook/release-notes/ty..." (https://link.segmentfault.com/?enc=OBcfgh0hLkzfCVrVQK26GQ%3D%3D.KAIlo2vj3p99i%2FUJgf8KKTFvtAFoD%2Bgmy2KL3R%2F2N4cLArZlAtW8YUC0yRd4kLFsHavsI1HTg6XnJMM8fR142eI7k%2FHKl2roPdrPzoI76kyBxgiAvrEH%2BSv0e6Qx2iTF%2FzyvK8TvujKDuwofoOvv2w%3D%3D)