ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

ts中 any 和 unknown 有什么区别,分别什么时候使用

2026/8/8 17:51:15 拓冰建站 浏览量
ts中 any 和 unknown 有什么区别,分别什么时候使用

any 和 unknown 都是顶级类型 top type,也就是所有类型的父类型 

(1)any代表任意类型, 是不做任何检查,相当于不使用 ts,不建议使用,使用 a as any as string 之类的,可以让类型检查通过,但是不建议使用。

(2)unknown 代表未知类型,更加严格,在对 unknown 类型的值执行大多数操作之前,必须进行某种形式的检查。 unknown 因为未知性质,不支持属性访问,不允许赋值给其他明确类型的变量。

unknown 还是可以保证类型安全的,在需要使用顶级类型的时候,还是用 unknown,使用 a as any as string 之类的,也可以让类型检查通过,建议使用。

  1. 隐式类型推断:
    • 对于 any,它会关闭 TypeScript 的类型检查,允许你在任何地方使用任何属性或方法,而不会得到编译器的提示。这样可能导致运行时错误。
    • 对于 unknown,你不能直接对其进行任何操作,因为 TypeScript 不知道它的具体类型。你必须在使用之前进行类型检查或类型断言。
  2. 类型赋值:
    • any 允许你将其赋值给任何类型,而不会引发错误。
    • unknown 不能直接赋值给其他类型,除非进行类型检查或类型断言。