以 Rust 语言为例, 深入介绍 Sum Type 对于程序简洁和可靠性带来的帮助. 跟 TypeScript 当中的写法做对比. 文章分成 3 个大的部分.
第一部分介绍什么是 Sum Type(特别是带参数的情况), 比如在 Rust 当中的有哪些语法, 详细展示一下. 然后展开介绍 Sum Type 在其他编程语言的使用历史和经验, 业界怎样一步步接受 Sum Type 的使用.
第二部分展示一下 TypeScript 当中模拟带参数的 sum type 的用法, 分析一下对比 Rust 当中写法的优势和劣势. 注意提供一个案例来读取数据. 分别基于 tagged union 写法, 跟 interface 写法, 来展示和对比.
第三部分基于 Rust 的 Sum Type 展示一个业务的场景, 配合 Pattern Matching 用一段较复杂的逻辑来展示实用性. 特别是写一个例子来展示出在代码变更时, 模式匹配配合类型, 在代码的可靠性上的优势. 展示一下 Rust 是如何帮你避免因为业务变更写出 Bug 的, 比如增加一个新的 Variant, 通过代码展示一下 Rust 编译器怎样提示出现的错误.