类型系统不是为了让你多写几个尖括号。它真正擅长的事只有一件:把不可能发生的状态,从 API 里删掉。
最常见的失败写法,是把一堆可选字段扔进同一个对象,然后在运行时互相猜。
折页编辑部
2026年9月12日

TypeScript 最有用的技巧不是 any 的对立面,而是把运行时才会炸的分支,提前写成编译器能穷尽的类型。
类型系统不是为了让你多写几个尖括号。它真正擅长的事只有一件:把不可能发生的状态,从 API 里删掉。
最常见的失败写法,是把一堆可选字段扔进同一个对象,然后在运行时互相猜。
读者阿南
判别联合写完之后,非法状态在编译期就过不去了。这篇可以直接当 checklist。
折页编辑部
对。类型系统该做的事就是把口头约定写进联合。
Rust 的报错看起来像在跟你吵架。把它翻译成人话之后,它其实只问两个问题:这块内存谁说了算,以及引用能活多久。
Python 的类型提示不消灭动态性。Protocol 只是把「长得像文件的东西」写成静态可检查的形状。
Zig 没有宏系统的剧场,却把编译期计算做成了普通语法。能在编译期结束的循环,就不该留到用户的 CPU 上。
内容站的主路径是请求-响应。把双向流式 RPC 的复杂度搬过来,是在用导弹打钉子。