提升 TypeScript 的 83 条具体方法
原书作者:Dan Vanderkam
“Effective TypeScript by Dan Vanderkam (O’Reilly). Copyright 2020 Dan Vanderkam, 978-1-492-05374-3.”
-
第 1 章:认识 TypeScript
-
第 2 章:TypeScript 的类型系统
- 📝 第 6 条: 利用编辑器探索类型系统
- 📝 第 7 条: 把类型看作值的集合
- 📝 第 8 条: 了解符号处于类型空间还是值空间
- 📝 第 9 条: 优先使用类型注解而非类型断言
- 📝 第 10 条: 避免使用对象包装类型(String, Number, Boolean, Symbol, BigInt)
- 📝 第 11 条: 区分多余属性检查与类型检查
- 📝 第 12 条: 尽可能为整个函数表达式应用类型
- 📝 第 13 条: 了解
type
与interface
的区别 - 📝 第 14 条: 使用
readonly
防止因可变性引发的错误 - 📝 第 15 条: 利用类型运算和泛型减少重复
- 📝 第 16 条: 优先使用更精确的索引签名替代方案
- 📝 第 17 条: 避免数字索引签名
-
第 3 章:类型推断与控制流分析
-
第 4 章:类型设计
- 📝 第 29 条: 优先设计始终表示有效状态的类型
- 📝 第 30 条: 接受要宽松,输出要严格
- 📝 第 31 条: 不要在文档中重复类型信息
- 📝 第 32 条: 避免在类型别名中包含
null
或undefined
- 📝 第 33 条: 将 null 值推至类型边界
- 📝 第 34 条: 优先使用接口的联合而非联合中的接口
- 📝 第 35 条: 使用更精确的替代方案代替字符串类型
- 📝 第 36 条: 为特殊值使用独立类型
- 📝 第 37 条: 限制可选属性的使用
- 📝 第 38 条: 避免重复的同类型参数
- 📝 第 39 条: 优先统一类型,而非建模差异
- 📝 第 40 条: 不精确的类型优于不准确的类型
- 📝 第 41 条: 使用领域语言为类型命名
- 📝 第 42 条: 避免基于个人经验数据的类型
-
第 5 章:类型的不安全性与
any
类型 -
第 6 章:泛型与类型层级编程
-
第 7 章:TypeScript 配方
-
第 8 章:类型声明与 @types
-
第 9 章:编写与运行代码
-
第 10 章:现代化与迁移