暂无商品咨询信息 [发表商品咨询]
本书的主要内容有:深入研究TypeScript类型系统的内部工作原理。将TypeScript集成到各种项目中。定义高级类型,灵活适应不同场景。创建跨项目可用的辅助类型。确保可读性和类型安全性。有效地为依赖字符串字面量的函数签名定义类型。解决标准库的限制。将TypeScript集成到复杂的React项目中。运用类型开发策略,包括类型测试。识别类型系统对规则做出例外处理的情况。
Stefan Baumgartner是oida.dev的Rust和TypeScript独立培训师,也是Dynatrace的高级产品架构师,主管TypeScript开发工具、库和语言运行时的开发工作。他在热门博客fettblog.eu上撰写有关TypeScript的文章,2020年在Smashing Magazine上出版了他的第D一本TypeScript著作TypeScript in 50 Lessons。
目录
序 1
前言 3
第1 章 项目配置 13
1.1 JavaScript 类型检查 .14
1.2 安装TypeScript .18
1.3 把类型放在一旁 22
1.4 将项目迁移到TypeScript .25
1.5 从Definitely Typed 加载类型 .28
1.6 设置全栈项目 .31
1.7 设置测试37
1.8 从URL 获取ECMAScript 模块的类型 .40
1.9 在Node 中加载不同类型的模块 44
1.10 使用Deno 及其依赖 .48
1.11 使用预定义配置 51
第2 章 基本类型 55
2.1 有效注解55
2.2 使用any 和unknown 60
2.3 选择正确的对象类型 63
2.4 使用元组类型 .66
2.5 区别接口和类型别名 70
2.6 定义函数重载 .73
2.7 定义this 参数类型 76
2.8 使用符号80
2.9 理解值和类型命名空间 .84
第3 章 类型系统 89
3.1 使用联合类型和交叉类型建模数据.89
3.2 使用可区分联合类型显式定义模型.94
3.3 使用断言never 技术穷尽检查 97
3.4 使用常量上下文固定类型 .101
3.5 使用类型谓词收窄类型 106
3.6 理解void 108
3.7 在catch 子句中处理错误类型 . 112
3.8 使用可选never 创建互斥模型 . 116
3.9 有效使用类型断言 . 118
3.10 使用索引签名 122
3.11 区分缺失属性和未定义值 127
3.12 使用枚举 130
3.13 在结构类型系统中定义名义类型 136
3.14 为字符串子集启用宽松的自动补全 140
第4 章 泛型 . 143
4.1 泛化函数签名 144
4.2 创建有关联的函数参数 147
4.3 摆脱any 和unknown 151
4.4 理解泛型实例化 .154
4.5 生成新对象类型 .159
4.6 使用断言签名修改对象 165
4.7 使用类型映射来映射类型 .168
4.8 使用ThisType 定义对象中的this 174
4.9 为泛型类型参数添加常量上下文 178
第5 章 条件类型 . 183
5.1 管理复杂的函数签名 183
5.2 使用never 过滤 188
5.3 按种类分组元素 .193
5.4 移除对象的特定属性 200
5.5 推导条件中的类型 .204
第6 章 字符串模板字面类型 211
6.1 自定义事件系统 .212
6.2 使用字符串操作类型和键重映射创建事件回调 .215
6.3 编写格式化函数 .219
6.4 提取格式参数类型 .223
6.5 处理递归限制 227
6.6 把模板字面量用作判别属性 .231
第7 章 可变元组类型 237
7.1 为concat 函数定义类型 .238
7.2 为promisify 函数定义类型 241
7.3 为curry 函数定义类型 246
7.4 为灵活的curry 函数定义类型 .250
7.5 为最简单的curry 函数定义类型 254
7.6 从元组创建枚举 .257
7.7 拆分函数签名的所有元素 .262
第8 章 辅助类型 . 265
8.1 把特定属性设为可选 266
8.2 修改嵌套对象 270
8.3 重映射类型 274
8.4 获取所有必需的键 .277
8.5 至少设定一个属性 .281
8.6 仅设定一个属性,以及全部设定或全不设定 287
8.7 把联合类型转换为交叉类型 .292
8.8 使用type-fest300
第9 章 标准库和外部类型定义 . 305
9.1 使用Object.keys 遍历对象 306
9.2 通过类型断言和unknown 突出不安全操作 .310
9.3 使用defineProperty 313
9.4 扩展Array.prototype.includes 的类型 319
9.5 过滤空值.324
9.6 扩展模块.326
9.7 增强全局命名空间 .329
9.8 将非JS 模块添加到模块图 334
第10 章 TypeScript 和React 337
10.1 编写代理组件 338
10.2 编写受控组件 341
10.3 为自定义钩子定义类型 344
10.4 为泛化forwardRef 组件定义类型 347
10.5 为上下文API 提供类型 352
10.6 为高阶组件定义类型 .358
10.7 为React 合成事件系统中的回调定义类型 .361
10.8 为多态组件定义类型 .364
第11 章 类 371
11.1 选择合适的可见性修饰符 372
11.2 显式定义方法覆盖 378
11.3 描述构造函数和原型 .382
11.4 在类中使用泛型 386
11.5 决定何时使用类或命名空间 390
11.6 编写静态类 .395
11.7 严格的属性初始化 400
11.8 在类中使用this 类型 .406
11.9 编写装饰器 . 411
第12 章 类型开发策略 . 419
12.1 编写低维护量类型 420
12.2 逐步完善类型 423
12.3 使用satisfies 检查契约 .436
12.4 测试复杂类型 441
12.5 使用Zod 在运行时验证数据类型 443
12.6 解决索引访问限制 449
12.7 使用函数重载还是条件类型 452
12.8 泛型的名称 .460
12.9 在TypeScript Playground 中设计原型 462
12.10 提供库的多个版本 467
12.11 适可而止 471
| 基本信息 | |
|---|---|
| 出版社 | 中国电力出版社 |
| ISBN | 9787523905340 |
| 条码 | 9787523905340 |
| 编者 | [奥地利]斯蒂芬·鲍姆加特纳(Stefan Baumgartner) 著 |
| 译者 | |
| 出版年月 | 2025-11-01 00:00:00.0 |
| 开本 | 16开 |
| 装帧 | 平装 |
| 页数 | 473 |
| 字数 | 561000 |
| 版次 | 1 |
| 印次 | 1 |
| 纸张 | |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]