Effective TypeScript:精进TypeScript代码的62个实践方法
Dan Vanderkam
王瑞鹏, 董强 译
出版时间:2021年11月
页数:320
TypeScript是JavaScript的类型化超集,有可能解决JavaScript的许多著名的让人头疼的问题。但是TypeScript也有自己的学习曲 线,同时了解如何有效地使用它也需要时间和实践。本书采用了《Effective C++》和《Effective Java》(均由Addison-Wesley出版社出版)所流行的格式,这本实用的书提供了62个实践方法,给出了包括什么该做,什么不该做,以及如何思考这门语言的具体建议。
本书作者Dan Vanderkam是Sidewalk Labs的首席软件工程师,他通过具体的例子向你展示了如何应用每个条款的建议。本书将帮助你从一个熟悉TypeScript基础知识的初级或中级用户晋升为一个知道如何使用好这门语言的专家。
● 学习TypeScript的类型系统的基本内容。
● 设计类型,让你的代码更安全,更易懂。
● 使用类型推断,用最少的类型标注来获得完全的安全。
● 战术性利用any类型。
● 了解TypeScript中的依赖关系和类型声明文件是如何工作的。
● 将你的JavaScript代码库成功地迁移到TypeScript。
  1. 前言
  2. 第1章 了解TypeScript
  3. 条款1:理解TypeScript与JavaScript的关系
  4. 要记住的事情
  5. 条款2:知道你在使用哪个TypeScript选项
  6. 要记住的事情
  7. 条款3:理解代码的生成是独立于类型的
  8. 类型错误的代码仍会产生输出
  9. 你无法在运行时检查TypeScript类型
  10. 类型操作不能影响运行时的值
  11. 运行时类型可能与声明类型不一样
  12. 你不能基于TypeScript类型来重载一个函数
  13. TypeScript类型对运行时的性能没有影响
  14. 要记住的事情
  15. 条款4:习惯结构类型(Structural Typing)
  16. 要记住的事情
  17. 条款5:限制使用any类型
  18. any类型没有类型安全
  19. any类型会让你打破契约
  20. any类型没有语言服务
  21. any类型会掩盖重构代码时的错误
  22. any类型遮蔽了你的类型设计
  23. any类型破坏了你对类型系统的信心
  24. 要记住的事情
  25. 第2章 TypeScript的类型系统
  26. 条款6:使用你的编辑器来询问和探索类型系统
  27. 要记住的事情
  28. 条款7:将类型视为价值的集合
  29. 要记住的事情
  30. 条款8:知道如何分辨符号是类型空间还是值空间
  31. 要记住的事情
  32. 条款9:优先选择类型声明而不是类型断言
  33. 要记住的事情
  34. 条款10:避免对象包装类(String,Number,Boolean,Symbol,BigInt)
  35. 要记住的事情
  36. 条款11:认识额外属性检查的局限性
  37. 要记住的事情
  38. 条款12:尽可能将类型应用于整个函数表达式
  39. 要记住的事情
  40. 条款13:了解类型(type)和接口(interface)的区别
  41. 要记住的事情
  42. 条款14:使用类型操作和泛型来避免重复自己的工作
  43. 要记住的事情
  44. 条款15:为动态数据使用索引签名
  45. 要记住的事情
  46. 条款16:优先选择Array、Tuple和ArrayLike,而不是数字索引签名
  47. 要记住的事情 99
  48. 条款17:使用readonly避免值变(Mutation)相关的错误
  49. 要记住的事情
  50. 条款18:使用映射类型来保持值的同步
  51. 要记住的事情
  52. 第3章 类型推断
  53. 条款19:避免你的代码被可推断类型弄得混乱不堪
  54. 要记住的事情
  55. 条款20:不同的类型使用不同的变量
  56. 要记住的事情
  57. 条款21:理解类型扩展
  58. 要记住的事情
  59. 条款22:理解类型收缩
  60. 要记住的事情
  61. 条款23:一次性构建对象
  62. 要记住的事情
  63. 条款24:在使用别名时要保持一致
  64. 要记住的事情
  65. 条款25:使用async函数代替异步代码的回调
  66. 要记住的事情
  67. 条款26:了解类型推断中如何使用上下文
  68. 元组类型
  69. 对象
  70. 回调
  71. 要记住的事情
  72. 条款27:使用函数式构造和库来帮助类型流转
  73. 要记住的事情
  74. 第4章 类型设计
  75. 条款28:倾向选择总是代表有效状态的类型
  76. 要记住的事情
  77. 条款29:宽进严出
  78. 要记住的事情
  79. 条款30:不要在文档中重复类型信息
  80. 要记住的事情
  81. 条款31:将空值推到你的类型边界上
  82. 要记住的事情
  83. 条款32:优选接口的联合,而不是联合的接口
  84. 要记住的事情
  85. 条款33:选择更精确的字符串类型的替代类型
  86. 要记住的事情
  87. 条款34:宁愿选择不完整的类型,也不选择不准确的类型
  88. 要记住的事情
  89. 条款35:从API和规范而不是从数据中生成类型
  90. 要记住的事情
  91. 条款36:使用你的问题域语言命名类型
  92. 要记住的事情
  93. 条款37:考虑加“烙印”来实现名义类型
  94. 要记住的事情
  95. 第5章 和Any一起工作.
  96. 条款38:为Any类型使用最窄的范围
  97. 要记住的事情
  98. 条款39:比起普通的any,选择更精确的any变体
  99. 要记住的事情
  100. 条款40:在类型良好的函数中隐藏不安全的类型断言
  101. 要记住的事情
  102. 条款41:理解any演变
  103. 要记住的事情
  104. 条款42:对未知类型的值使用unknown而不是any
  105. 要记住的事情
  106. 条款43:选择类型安全的方法而不是猴子补丁
  107. 要记住的事情
  108. 条款44:追踪你的类型覆盖率以防止类型安全中的回归问题
  109. 要记住的事情
  110. 第6章 类型声明和@types
  111. 条款45:把TypeScript和@types放在devDependencies中
  112. 要记住的事情
  113. 条款46:了解类型声明中涉及的三个版本
  114. 要记住的事情
  115. 条款47:导出所有出现在公有API中的类型
  116. 要记住的事情
  117. 条款48:使用TSDoc来编写API注释
  118. 要记住的事情
  119. 条款49:提供回调中this的类型
  120. 要记住的事情
  121. 条款50:优先选择条件类型,而不是重载声明
  122. 要记住的事情
  123. 条款51:反映类型以切断依赖
  124. 要记住的事情
  125. 条款52:警惕测试类型时的陷阱
  126. 要记住的事情
  127. 第7章 编写和运行你的代码
  128. 条款53:使用ECMAScript特性,而非TypeScript特性
  129. 枚举
  130. 参数属性
  131. 命名空间和三斜线导入
  132. 装饰器
  133. 要记住的事情
  134. 条款54:了解如何迭代对象
  135. 要记住的事情
  136. 条款55:了解DOM的层次结构
  137. 要记住的事情
  138. 条款56:不要依赖私有访问修饰符(private) 来隐藏信息
  139. 要记住的事情
  140. 条款57:使用Source Maps来调试TypeScript
  141. 要记住的事情
  142. 第8章 迁移到TypeScript
  143. 条款58:编写现代JavaScript
  144. 使用ECMAScript模块
  145. 使用类而不是原型
  146. 使用let/const代替var
  147. 使用for-of或数组方法代替for(;;)
  148. 优先选择箭头函数而不是函数表达式
  149. 使用对象字面量的简写形式和解构赋值
  150. 使用默认函数参数
  151. 使用async/await代替原始的Promise或Callback
  152. 不要把use strict放在TypeScript中
  153. 要记住的事情
  154. 条款59:使用@ts-check和JSDoc来尝试TypeScript
  155. 未声明的全局变量
  156. 未知的库
  157. DOM问题
  158. 不准确的JSDoc
  159. 要记住的事情
  160. 条款60:通过allowJs混合使用TypeScript、JavaScript
  161. 要记住的事情
  162. 条款61:将模块逐个转换到依赖关系图上
  163. 未声明的类成员
  164. 类型不断变化的值
  165. 要记住的事情
  166. 条款62:在启用noImplicitAny之前,不要认为迁移已经完成
  167. 要记住的事情
书名:Effective TypeScript:精进TypeScript代码的62个实践方法
作者:Dan Vanderkam
译者:王瑞鹏, 董强 译
国内出版社:中国电力出版社
出版时间:2021年11月
页数:320
书号:978-7-5198-5938-1
原版书书名:Effective TypeScript
原版书出版商:O'Reilly Media
Dan Vanderkam
 
Dan Vanderkam是Sidewalk Labs的首席软件工程师,也是TypeScript NYC Meetup的联合创始人。作为开源项目的长期贡献者,他此前曾在西纳山的伊坎医学院工作,并在谷歌负责数十亿用户使用的搜索功能。
 
 
购买选项
定价:98.00元
书号:978-7-5198-5938-1
出版社:中国电力出版社