TypeScript经典实例
TypeScript经典实例
Stefan Baumgartner
安道 译
出版时间:2025年12月
页数:473
“本书教你使用高级类型解决各种问题。更棒的是,这本书还教你如何使用TypeScript的特性创建新类型。”
——Nathan Shively-Sanders
TypeScript团队的软件工程师

TypeScript是JavaScript开发人员最重要的工具之一。然而,即便是经验丰富的开发人员,也会疑惑TypeScript编译器为什么输出红色波浪线。阅读本书吧!在这本实用指南中,作者Stefan Baumgartner为高级工程师提供了TypeScript日常问题的解决方案。
本书为熟悉JavaScript和TypeScript基础知识的开发人员提供了一些切实可行的方案,有助于解决各种问题。书中的经典实例自成一体,涵盖设置复杂的项目结构和开发高级辅助类型,详细分析问题并讨论方案背后的原理和具体措施。
本书是你在TypeScript进阶旅程中不可缺少的伴侣,涵盖以下话题:
● 深入研究TypeScript类型系统的内部工作原理。
● 将TypeScript集成到各种项目中。
● 定义高级类型,灵活适应不同场景。
● 创建跨项目可用的辅助类型。
● 确保可读性和类型安全性。
● 有效地为依赖字符串字面量的函数签名定义类型。
● 解决标准库的限制。
● 将TypeScript集成到复杂的React项目中。
● 运用类型开发策略,包括类型测试。
● 识别类型系统对规则做出例外处理的情况。
  1. 前言
  2. 第1章 项目配置
  3. 1.1 JavaScript类型检查
  4. 1.2 安装TypeScript
  5. 1.3 把类型放在一旁
  6. 1.4 将项目迁移到TypeScript
  7. 1.5 从Definitely Typed加载类型
  8. 1.6 设置全栈项目
  9. 1.7 设置测试
  10. 1.8 从URL获取ECMAScript模块的类型
  11. 1.9 在Node中加载不同类型的模块
  12. 1.10 使用Deno及其依赖
  13. 1.11 使用预定义配置
  14. 第2章 基本类型
  15. 2.1 有效注解
  16. 2.2 使用any和unknown
  17. 2.3 选择正确的对象类型
  18. 2.4 使用元组类型
  19. 2.5 区别接口和类型别名
  20. 2.6 定义函数重载
  21. 2.7 定义this参数类型
  22. 2.8 使用符号
  23. 2.9 理解值和类型命名空间
  24. 第3章 类型系统
  25. 3.1 使用联合类型和交叉类型建模数据
  26. 3.2 使用可区分联合类型显式定义模型
  27. 3.3 使用断言never技术穷尽检查
  28. 3.4 使用常量上下文固定类型
  29. 3.5 使用类型谓词收窄类型
  30. 3.6 理解void
  31. 3.7 在catch子句中处理错误类型
  32. 3.8 使用可选never创建互斥模型
  33. 3.9 有效使用类型断言
  34. 3.10 使用索引签名
  35. 3.11 区分缺失属性和未定义值
  36. 3.12 使用枚举
  37. 3.13 在结构类型系统中定义名义类型
  38. 3.14 为字符串子集启用宽松的自动补全
  39. 第4章 泛型
  40. 4.1 泛化函数签名
  41. 4.2 创建有关联的函数参数
  42. 4.3 摆脱any和unknown
  43. 4.4 理解泛型实例化
  44. 4.5 生成新对象类型
  45. 4.6 使用断言签名修改对象
  46. 4.7 使用类型映射来映射类型
  47. 4.8 使用ThisType定义对象中的this
  48. 4.9 为泛型类型参数添加常量上下文
  49. 第5章 条件类型
  50. 5.1 管理复杂的函数签名
  51. 5.2 使用never过滤
  52. 5.3 按种类分组元素
  53. 5.4 移除对象的特定属性
  54. 5.5 推导条件中的类型
  55. 第6章 字符串模板字面类型
  56. 6.1 自定义事件系统
  57. 6.2 使用字符串操作类型和键重映射创建事件回调
  58. 6.3 编写格式化函数
  59. 6.4 提取格式参数类型
  60. 6.5 处理递归限制
  61. 6.6 把模板字面量用作判别属性
  62. 第7章 可变元组类型
  63. 7.1 为concat函数定义类型
  64. 7.2 为promisify函数定义类型
  65. 7.3 为curry函数定义类型
  66. 7.4 为灵活的curry函数定义类型
  67. 7.5 为最简单的curry函数定义类型
  68. 7.6 从元组创建枚举
  69. 7.7 拆分函数签名的所有元素
  70. 第8章 辅助类型
  71. 8.1 把特定属性设为可选
  72. 8.2 修改嵌套对象
  73. 8.3 重映射类型
  74. 8.4 获取所有必需的键
  75. 8.5 至少设定一个属性
  76. 8.6 仅设定一个属性,以及全部设定或全不设定
  77. 8.7 把联合类型转换为交叉类型
  78. 8.8 使用type-fest
  79. 第9章 标准库和外部类型定义
  80. 9.1 使用Object.keys遍历对象
  81. 9.2 通过类型断言和unknown突出不安全操作
  82. 9.3 使用defineProperty
  83. 9.4 扩展Array.prototype.includes的类型
  84. 9.5 过滤空值
  85. 9.6 扩展模块
  86. 9.7 增强全局命名空间
  87. 9.8 将非JS模块添加到模块图
  88. 第10章 TypeScript和React
  89. 10.1 编写代理组件
  90. 10.2 编写受控组件
  91. 10.3 为自定义钩子定义类型
  92. 10.4 为泛化forwardRef组件定义类型
  93. 10.5 为上下文API提供类型
  94. 10.6 为高阶组件定义类型
  95. 10.7 为React合成事件系统中的回调定义类型
  96. 10.8 为多态组件定义类型
  97. 第11章 类
  98. 11.1 选择合适的可见性修饰符
  99. 11.2 显式定义方法覆盖
  100. 11.3 描述构造函数和原型
  101. 11.4 在类中使用泛型
  102. 11.5 决定何时使用类或命名空间
  103. 11.6 编写静态类
  104. 11.7 严格的属性初始化
  105. 11.8 在类中使用this类型
  106. 11.9 编写装饰器
  107. 第12章 类型开发策略
  108. 12.1 编写低维护量类型
  109. 12.2 逐步完善类型
  110. 12.3 使用satisfies检查契约
  111. 12.4 测试复杂类型
  112. 12.5 使用Zod在运行时验证数据类型
  113. 12.6 解决索引访问限制
  114. 12.7 使用函数重载还是条件类型
  115. 12.8 泛型的名称
  116. 12.9 在TypeScript Playground中设计原型
  117. 12.10 提供库的多个版本
  118. 12.11 适可而止
书名:TypeScript经典实例
作者:Stefan Baumgartner
译者:安道 译
国内出版社:中国电力出版社
出版时间:2025年12月
页数:473
书号:978-7-5239-0534-0
原版书书名:TypeScript Cookbook
原版书出版商:O'Reilly Media
Stefan Baumgartner
 
Stefan Baumgartner是oida.dev的Rust和TypeScript独立培训师,也是Dynatrace的高级产品架构师,主管TypeScript开发工具、库和语言运行时的开发工作。他在热门博客fettblog.eu上撰写有关TypeScript的文章,2020年在Smashing Magazine上出版了他的第一本TypeScript著作TypeScript in 50 Lessons。
 
 
本书封面上的动物是一只紫红头鹦鹉(学名:Psittacula cyanocephala)。这种鸟是印度次大陆特有物种,常被当作宠物饲养。与其他作为宠物饲养的鹦鹉一样,紫红头鹦鹉需要定期互动和社交。相较于其他鹦鹉,紫红头鹦鹉的攻击性和占有欲低,性格温和、善于社交且富有感情。
紫红头鹦鹉具有二态性,雄性和雌性的特征迥异,容易区分。无论性别,身体主要呈绿色,胸部、腹部、背部和翅膀上的颜色各有不同。雄性头部呈紫红色,颈部有黑色颈圈。雌性头部呈蓝灰色,颈部羽毛略带黄色。紫红头鹦鹉是中型鸟类,体长约12英寸(约30厘米),体重在2.3~2.8盎司(约67~72克)之间,平均寿命为15~20年。
野生状态下,这种鹦鹉常以水果、种子、多肉花瓣和谷物为食。它们经常破坏农田和果园,臭名远扬。在圈养环境下,喂养高品质的种子和颗粒饲料,并辅以新鲜水果和蔬菜(例如,豆芽、绿叶蔬菜、浆果和辣椒),对它们的健康最为有利。
这种鸟通常栖息在喜马拉雅山麓向南到斯里兰卡之间的林地和森林地区,包括印度、巴基斯坦和孟加拉国。虽然由于栖息地丧失,数量正在逐渐下降,但是紫红头鹦鹉没有濒临灭绝。
购买选项
定价:128.00元
书号:978-7-5239-0534-0
出版社:中国电力出版社