失效链接处理 |
Effective TypeScript PDF 下载
转载自:
http://www.python222.com/article/812
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
https://product.dangdang.com/29336100.html
相关截图: 资料内容: ·学习TypeScript的类型系统的基本内容。 ·设计类型,让你的代码更安全,更易懂。 ·使用类型推断,用最少的类型标注来获得接近的安全。 ·战术性利用any类型。 ·了解TypeScript中的依赖关系和类型声明文件是如何工作的。 ·将你的JavaScript代码库成功地迁移到 TypeScript。 资料目录: 前言 .1 第1章 了解TypeScript 11 条款1:理解 TypeScript 与 JavaScript 的关系 11 要记住的事情 18 条款2:知道你在使用哪个 TypeScript 选项 18 要记住的事情 22 条款3:理解代码的生成是独立于类型的 . 22 类型错误的代码仍会产生输出 23 你无法在运行时检查 TypeScript 类型 24 类型操作不能影响运行时的值 26 运行时类型可能与声明类型不一样 . 27 你不能基于 TypeScript 类型来重载一个函数 . 28 TypeScript 类型对运行时的性能没有影响 29 要记住的事情 30 条款4:习惯结构类型(Structural Typing). 30 要记住的事情 35 条款5:使用any 类型 35 any 类型没有类型安全 36 any 类型会让你打破契约 36 any 类型没有语言服务 37 any 类型会掩盖重构代码时的错误 38 any 类型遮蔽了你的类型设计 . 39 any 类型破坏了你对类型系统的信心 40 要记住的事情 40 第2章 TypeScript 的类型系统 41 条款6:使用你的编辑器来询问和探索类型系统 41 要记住的事情 46 条款7:将类型视为价值的集合 . 46 要记住的事情 53 条款8:知道如何分辨符号是类型空间还是值空间 . 54 要记住的事情 60 条款9:优先选择类型声明而不是类型断言 60 要记住的事情 64 条款10:避免对象包装类(String,Number,Boolean,Symbol,BigInt) 64 要记住的事情 68 条款11:认识额外属性检查的局限性 . 68 要记住的事情 72 条款12:尽可能将类型应用于整个函数表达式 . 72 要记住的事情 75 条款13:了解类型(type)和接口(interface)的区别 75 要记住的事情 81 条款14:使用类型操作和泛型来避免重复自己的工作 81 要记住的事情 90 条款15:为动态数据使用索引签名 . 91 要记住的事情 95 条款16:优先选择 Array、Tuple 和 ArrayLike,而不是数字索引签名. 95 要记住的事情 99 条款17:使用 readonly 避免值变(Mutation)相关的错误. 99 要记住的事情 107 条款18:使用映射类型来保持值的同步 . 107 要记住的事情 110 第3章 类型推断 111 条款19:避免你的代码被可推断类型弄得混乱不堪 112 要记住的事情 119 条款20:不同的类型使用不同的变量 119 要记住的事情 122 条款21:理解类型扩展 122 要记住的事情 126 条款22:理解类型收缩 127 要记住的事情 130 条款23:一次性构建对象 131 要记住的事情 134 条款24:在使用别名时要保持一致 134 要记住的事情 138 条款25:使用async 函数代替异步代码的回调 138 要记住的事情 144 条款26:了解类型推断中如何使用上下文 144 元组类型 . 146 对象 148 回调 148 要记住的事情 149 条款27:使用函数式构造和库来帮助类型流转 150 要记住的事情 155 第4章 类型设计 156 条款28:倾向选择总是代表有效状态的类型 156 要记住的事情 162 条款29:宽进严出 163 要记住的事情 166 条款30:不要在文档中重复类型信息 167 要记住的事情 169 条款31:将空值推到你的类型边界上 169 要记住的事情 173 条款32:优选接口的联合,而不是联合的接口 173 要记住的事情 177 条款33:选择更准确的字符串类型的替代类型 178 要记住的事情 182 条款34:宁愿选择不完整的类型,也不选择不准确的类型 . 183 要记住的事情 187 条款35:从 API 和规范而不是从数据中生成类型 . 188 要记住的事情 194 条款36:使用你的问题域语言命名类型 . 194 要记住的事情 197 条款37:考虑加“烙印”来实现名义类型 197 要记住的事情 201 第5章 和 Any 一起工作. 202 条款38:为 Any 类型使用最窄的范围 . 202 要记住的事情 205 条款39:比起普通的 any,选择更准确的 any 变体 . 205 要记住的事情 207 条款40:在类型良好的函数中隐藏不安全的类型断言 207 要记住的事情 210 条款41:理解 any 演变 210 要记住的事情 214 条款42:对未知类型的值使用 unknown 而不是 any 214 要记住的事情 218 条款43:选择类型安全的方法而不是猴子补丁 218 要记住的事情 221 条款44:追踪你的类型覆盖率以防止类型安全中的回归问题 221 要记住的事情 224 第6章 类型声明和 @types 225 条款45:把 TypeScript 和 @types 放在 devDependencies 中 225 要记住的事情 227 条款46:了解类型声明中涉及的三个版本 228 要记住的事情 232 条款47:导出所有出现在公有 API 中的类型 232 要记住的事情 233 条款48:使用 TSDoc 来编写 API 注释 234 要记住的事情 237 条款49:提供回调中 this 的类型 237 要记住的事情 242 条款50:优先选择条件类型,而不是重载声明 242 要记住的事情 245 条款51:反映类型以切断依赖 . 245 要记住的事情 246 条款52:警惕测试类型时的陷阱 247 要记住的事情 252 第7章 编写和运行你的代码 . 253 条款53:使用 ECMAScript 特性,而非 TypeScript 特性 253 枚举 254 参数属性 . 256 命名空间和三斜线导入 258 装饰器 258 要记住的事情 259 条款54:了解如何迭代对象 259 要记住的事情 262 条款55:了解 DOM 的层次结构 . 262 要记住的事情 269 条款56:不要依赖私有访问修饰符(private) 来隐藏信息 269 要记住的事情 272 条款57:使用 Source Maps 来调试 TypeScript 272 要记住的事情 276 第8 章 迁移到TypeScript . 277 条款58:编写现代 JavaScript 278 使用 ECMAScript 模块 279 使用类而不是原型 . 279 使用 let/const 代替 var . 281 使用 for-of 或数组方法代替 for(;;) 282 优先选择箭头函数而不是函数表达式 282 使用对象字面量的简写形式和解构赋值 . 283 使用默认函数参数 . 285 使用 async/await 代替原始的 Promise 或 Callback 286 不要把 use strict 放在 TypeScript 中 . 287 要记住的事情 288 条款59:使用 @ts-check 和 JSDoc 来尝试 TypeScript 288 未声明的全局变量 . 289 未知的库 . 289 DOM 问题 290 不准确的 JSDoc 291 要记住的事情 293 条款60:通过 allowJs 混合使用 TypeScript、JavaScript 293 要记住的事情 295 条款61:将模块逐个转换到依赖关系图上 295 未声明的类成员 296 类型不断变化的值 . 298 要记住的事情 300 条款62:在启用 noImplicitAny 之前,不要认为迁移已经完成 . 301 要记住的事情 302 |