作品简介

本书全面介绍类型系统的特性,从基本类型开始,一直介绍到函数类型和子类型、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速览表
展开全部