TypeScript 的 any、unknown 与 never分别用于表达跳过部分类型检查、尚未确定的输入类型及不可能出现的值,三者不能互相等同。
检查与使用边界
any会绕过许多类型检查,并把风险传播到后续表达式。unknown可以接收任意值,但使用前必须检查或收窄,适合作为尚未验证的外部输入类型。never表示不可能出现的值,可用于穷尽分支检查。
类型断言 as T 不会在运行时验证数据。接口响应、存储数据和用户输入仍需要运行时校验;TypeScript 的静态类型通常在输出 JavaScript 时被擦除。