Skip to content
阅读进度

如何理解TypeScript、运行时校验与 API 契约? ​

返回 架构与 SDK 目录

标准回答 ​

TypeScript 的类型在编译后主要用于开发约束,不能保证服务器真的返回声明的结构。网络输入、配置、持久数据和第三方响应仍需运行时校验,校验失败要有明确错误而不是依靠类型断言跳过。

契约应统一字段含义、可空性、错误分类、版本、分页和时间格式。任务接口区分已受理与最终完成,写入接口表达幂等冲突;客户端不能用 HTTP 200 代替业务状态,也不能遇到任何非 200 就重新创建任务。

服务端还需执行授权与业务约束,JSON Schema 只检查结构的一部分。生成客户端可以减少字段漂移,但仍需核对版本兼容和运行时行为。新增可选字段通常比改变既有字段含义更易兼容。

追问与回答 ​

为什么 as SomeType 不能证明数据合法 ​

断言告诉编译器采用某种类型,不会在运行时逐字段检查。需要真正的解析与校验函数。

如何设计错误码 ​

让稳定机器码表达可恢复类别,面向用户的信息解释行动,关联 ID 支持定位;不要依赖解析任意自然语言错误文本。

易混淆点 ​

  • 把前端类型检查当作服务端输入验证。

参考资料 ​

内容来源 ​

用完整回答理解机制,用真实证据解释项目。