作者从最常见的问题出发:来自 API 响应、JSON.parse、localStorage、消息负载或第三方代码的值,在真正验证之前只能是 unknown。他强调 unknown 不是「缺类型信息」,而是对一个尚未验证的值的诚实描述——HTTP 响应不会因为你期待它是 User 就变成 User。用 as User 是最短的出路,但它只改变编译器的信念:不检查运行时值、不补缺失属性、也不会把 123 变成字符串。他推荐用可组合的运行时类型守卫,让同一个检查同时完成运行时校验和类型收窄,并可以像积木一样层层拼出真实负载的形状;可选字段与可空字段必须分开表达,因为那是两个不同的运行时契约。safeParse 只是把结果变成可分支的标签,它不克隆、不强转、不生成新对象,也不会把非法数据修成合法数据。至于要不要 schema 库,他的答案是看边界:需要字段级错误路径、一次报多个错、强制转换、默认值或从 schema 生成类型时,schema 库仍然是对的选择。