session-typestypescriptprotocol-statetype-systems TypeScript 不会让你发出那次调用:在类型系统中编码协议状态 如何使用 phantom types 和 `this` 参数,将非法的协议转换从运行时 bug 变成编译期错误。 每个 API 客户端内部都藏着一个状态机。先握手,再认证,然后发送数据,最后关闭。打破这个顺序,你就会遇到运行时错误、服务器混乱,甚至更糟的静默数据损坏。 大多数团队用运行时检查来编码这些规则。。这确实有效——直到有人忘了写检查,或者一次 refactor 引入了一条跳过检查的新代码路径。等你发现时,bug… 2026年8月12日