暂无商品咨询信息 [发表商品咨询]
本书的主要内容有:解析TypeScript类型系统的运作机理,领会核心精髓。善用类型推断,以最Z简注解构筑周全的类型防护壁垒。精研类型设计之道,铸就安全性与可读性兼具的代码基底。活用泛型与类型级编程,建模复杂接口模型。解析依赖关系与声明文件,驾驭模块化工程的隐秘脉络。制定JavaScript向TypeScript的渐进迁移方略,实现工程的平稳演进。
Dan Vanderkam,独立软件工程师,TypeScript领域深耕多年的实践者、布道者与生态共建者。他历任Sidewalk Labs首席软件工程师、谷歌首席软件工程师,工作成果服务了全球数十亿的搜索用户。
目录
前言 1
第一版前言 13
第1 章 认识TypeScript 17
条款1:TypeScript 与JavaScript 18
条款2:了解常用的编译选项25
条款3:代码生成独立于类型30
条款4:结构类型的自由度 39
条款5:使用any 要慎重 44
第2 章 TypeScript 的类型系统 51
条款6:借助编辑器探索类型世界 51
条款7:值的集合即类型 58
条款8:类型空间与值空间 67
条款9:类型注解胜于类型断言 74
条款10:避免使用对象类型(String、Number、Boolean、Symbol、BigInt) 79
条款11:多余属性检查和类型检查 83
条款12:函数整体声明类型更安全 88
条款13:type 别名与interface 93
条款14:使用readonly 守护不可变值 101
条款15:类型操作配泛型,避免重复造轮子 108
条款16:类型要精准,索引签名请慎用 120
条款17:慎用数字索引签名 126
第3 章 类型推断与控制流分析 131
条款18:避免类型冗余,保持代码整洁 132
条款19:类型专属,变量分立 141
条款20:类型能溯源,推断全了解 144
条款21:对象整装,一次性构造 151
条款22:认识类型收窄 154
条款23:别名要使用,类型得一致 160
条款24:以上下文为基础,类型推导有根有据164
条款25:类型演变,时刻了解 170
条款26:函数式构建引航,类型贯通流转 175
条款27:async 取代回调,类型流转更畅通 180
条款28:类与柯里化并举,新建类型推断点 186
第4 章 类型设计 193
条款29:类型即契约,状态需有效 193
条款30:宽进严出,契约必守 200
条款31:类型勿繁,注释需简 205
条款32:类型别名切勿包含null 或undefined208
条款33:空值需在类型之外 209
条款34:接口组合胜过属性组合 214
条款35:类型精确优先,慎用字符串 219
条款36:特殊值要有独立类型 224
条款37:慎用可选属性 228
条款38:同类型参数不传两次 233
条款39:统一类型胜过细微差异建模 235
条款40:不完全精确的类型胜过不准确的类型238
条款41:以专业领域语言来命名类型 244
条款42:孤例不证 247
第5 章 非健全性与any 类型 255
条款43:压缩any 的作用域 255
条款44:更精确的any 变体胜过any 本身 259
条款45:在签名正确的函数内部隐藏不安全类型断言262
条款46:类型未知,unknown 胜过any 267
条款47:类型安全的方法胜过猴子补丁 272
条款48:规避健全性陷阱 277
条款49:跟踪类型覆盖率,避免类型安全回退289
第6 章 泛型与类型级编程 293
条款50:视泛型为类型间的函数 294
条款51:避免非必要的类型参数 301
条款52:条件类型胜过重载签名 308
条款53:控制条件类型在联合类型上的分布 313
条款54:使用模板字面量类型建模DSL 和字符串之间的关系 319
条款55:类型也要测试 326
条款56:优化类型的展示方式 337
条款57:泛型也要尾递归 342
条款58:自动代码生成胜过手写复杂类型 347
第7 章 TypeScript 指南 353
条款59:使用Never 类型进行类型穷举检查 353
条款60:遍历对象 361
条款61:使用Record 类型保持值的同步 365
条款62:使用剩余参数和元组类型来建模可变参数函数 369
条款63:使用可选的never 属性来建模异或关系 372
条款64:使用Brand 构建名义类型 376
第8 章 类型声明和@types 381
条款65:将TypeScript 和@types 放在devDependencies 中 381
条款66:理解类型声明中的三个版本 384
条款67:导出所有出现在公共API 中的类型 389
条款68:使用TSDoc 注释API 390
条款69:如果this 是API 的一部分,请在回调中为其指定类型 394
条款70:使用镜像类型断开依赖关系 399
条款71:使用模块增强来改善类型 402
第9 章 编写和运行代码 409
条款72:与Typescript 相比,ECMAScript 更胜一筹 409
条款73:使用源码映射调试TypeScript 418
条款74:了解运行时类型的重组 426
条款75:理解DOM 的层级关系 432
条款76:根据环境创建精确的模型 439
条款77:理解类型检查和单元测试之间的关系442
条款78:关注编译器的性能 447
第10 章 现代化与迁移 457
条款79:编写现代化的JavaScript 458
条款80:使用@ts-check 和JSDoc 试验TypeScript 463
条款81:使用allowJs 混合TypeScript 和JavaScript 469
条款82:按照依赖逐个进行模块转换 470
条款83:在启用noImplicitAny 前,不要认为迁移已完成 477
附录 第一版与第二版条款对照表 481
| 基本信息 | |
|---|---|
| 出版社 | 中国电力出版社 |
| ISBN | 9787523904930 |
| 条码 | 9787523904930 |
| 编者 | [美]丹·范德卡姆(Dan Vanderkam) 著 |
| 译者 | |
| 出版年月 | 2025-11-01 00:00:00.0 |
| 开本 | 16开 |
| 装帧 | 平装 |
| 页数 | 483 |
| 字数 | 578000 |
| 版次 | 1 |
| 印次 | 1 |
| 纸张 | |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]