编程与类型系统
作品简介
本书全面介绍类型系统的特性,从基本类型开始,一直介绍到函数类型和子类型、OOP、泛型编程和高阶类型(如函子和单子)。本书没有关注这些特性背后的理论,而是通过实际应用的方式来解释每种特性。本书说明了如何以及何时使用每种特性来改进代码。
本书作者弗拉德·里斯库迪亚,译者赵利通。
作品目录
Preface 前言
Acknowledgements 致谢
About this book 关于本书
Types and possible values 类型及可能的取值
Common algorithms 常用算法
第1章 类型简介
1.1 为什么存在类型
1.2 类型系统的优点
1.3 类型系统的类型
小结
第2章 基本类型
2.1 设计不返回值的函数
2.2 布尔逻辑和短路
2.3 数值类型的常见陷阱
2.4 编码文本
2.5 使用数组和引用构建数据结构
小结
习题答案
第3章 组合
3.1 复合类型
3.2 使用类型表达多选一
3.3 访问者模式
3.4 代数数据类型
小结
习题答案
第4章 类型安全
4.1 避免基本类型偏执来防止错误解释
4.2 实施约束
4.3 添加类型信息
4.4 隐藏和恢复类型信息
小结
习题答案
第5章 函数类型
5.1 一个简单的策略模式
5.2 不使用switch语句的状态机
5.3 使用延迟值避免高开销的计算
5.4 使用map、filter和reduce
5.5 函数式编程
小结
习题答案
第6章 函数类型的高级应用
6.1 一个简单的装饰器模式
6.2 实现一个计数器
6.3 异步执行运行时间长的操作
6.4 简化异步代码
小结
习题答案
第7章 子类型
7.1 在TypeScript中区分相似的类型
7.2 子类型的极端情况
7.3 允许的替换
小结
习题答案
第8章 面向对象编程的元素
8.1 使用接口定义契约
8.2 继承数据和行为
8.3 组合数据和行为
8.4 扩展数据和行为
8.5 纯粹面向对象代码的替代方案
小结
习题答案
第9章 泛型数据类型
9.1 解耦关注点
9.2 泛型数据布局
9.3 遍历数据结构
9.4 数据流
小结
习题答案
第10章 泛型算法和迭代器
10.1 更好的map()、filter()和reduce()
10.2 常用算法
10.3 约束类型参数
10.4 高效reverse和其他使用迭代器的算法
10.5 自适应算法
小结
习题答案
第11章 高阶类型及其他
11.1 更加通用的map
11.2 单子
11.3 继续学习
小结
习题答案
附录A TypeScript的安装及本书的源代码
附录B TypeScript速览表
载入中