现代 TypeScript 系统中的类型化边界
· 7 分钟阅读
当类型保护模块、API 与运行时数据之间的接缝时,TypeScript 才真正划算。
类型在边缘最强
内部函数注解有帮助,但昂贵的缺陷通常跨越进程、网络、存储或团队边界。把类型化投入放在不可信或独立部署的数据进入系统之处:HTTP 载荷、队列消息、环境配置与第三方 webhook。
在这些边缘,编译时类型不够。与运行时 schema 配对,使无效数据在腐蚀领域逻辑前以受控方式失败。
共享契约,而非实现
从单一事实来源为客户端与服务器生成或发布共享类型。将传输细节与 UI 关切排除在领域模型之外。字段可空性的变更应是刻意的,并对每个消费者可见。
标识符的品牌类型可防止意外混用用户 ID、组织 ID 与外部引用。小的名义区分能抓住整类集成错误。
- 在信任边界读取时校验
- 在成本低处让非法状态不可表示
- 优先显式结果类型,而非抛出歧义
- 将 DTO 与持久化模型分开
避免类型表演
为每个临时 UI 状态过度拟合类型会制造 churn 而无安全。any、宽泛断言与过于巧妙的条件类型等逃生舱应稀少且有理。队友能改动的可读类型,比无人理解的精巧类型更有价值。
用更少的生产解析错误与更安全的重构衡量成功,而非泛型密度。
让类型记录决策
好的类型系统捕获产品规则:入职后存在哪些字段、哪些状态允许退款、哪些载荷已版本化。该文档因编译器强制而保持诚实。
当 TypeScript 编码你已信奉的架构,并阻止团队意外放弃它时,它最有效。
由 Berktug Berke Ates 于 2025年9月30日 发布。