文轩九月图书旗舰店店铺主页二维码
文轩九月图书旗舰店
特价好书,就在文轩网!
微信扫描二维码,访问我们的微信店铺

Effective TypeScript 精进TypeScript代码的62个实践方法

98.00
运费: 免运费
库存: 13 件
Effective TypeScript 精进TypeScript代码的62个实践方法 商品图0
Effective TypeScript 精进TypeScript代码的62个实践方法 商品缩略图0

商品详情

Effective TypeScript 精进TypeScript代码的62个实践方法

作  者:(美)丹·范德卡姆 著 王瑞鹏,董强 译
定  价:98
出 版 社:中国电力出版社
出版日期:2021年11月01日
页  数:320
装  帧:平装
ISBN:9787519859381

目录

前言 .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

内容介绍

·学习TypeScript的类型系统的基本内容。
·设计类型,让你的代码更安全,更易懂。
·使用类型推断,用最少的类型标注来获得接近的安全。
·战术性利用any类型。
·了解TypeScript中的依赖关系和类型声明文件是如何工作的。
·将你的JavaScript代码库成功地迁移到 TypeScript。

(美)丹·范德卡姆 著 王瑞鹏,董强 译

文轩九月图书旗舰店店铺主页二维码
文轩九月图书旗舰店
特价好书,就在文轩网!
扫描二维码,访问我们的微信店铺

Effective TypeScript 精进TypeScript代码的62个实践方法

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏