TypeScript编程
作者:[美] 鲍里斯切尔尼 著
出版社:中国电力出版社
出版时间:2020-07-01
ISBN:9787519845964
定价:¥88.00
前言 1
第1 章 导言 9
第2 章 TypeScript 概述 . 13
2.1 编译器 .13
2.2 类型系统 15
TypeScript VS. JavaScript.16
2.3 代码编辑器设置 20
2.3.1 tsconfig.json .20
2.3.2 tslint.json .22
2.4 index.ts 23
2.5 练习题 .24
第3 章 类型全解 26
3.1 类型术语 27
3.2 类型浅谈 28
3.2.1 any .28
3.2.2 unknown 30
3.2.3 boolean 30
3.2.4 number .32
3.2.5 bigint .33
3.2.6 string 34
3.2.7 symbol .34
3.2.8 对象 .35
3.2.9 中场休息:类型别名、并集和交集.42
3.2.10 数组 .46
3.2.11 元组 .48
3.2.12 null、undefined、void 和never .51
3.2.13 枚举 .53
3.3 小结 .58
3.4 练习题 .58
第4 章 函数 60
4.1 声明和调用函数 60
4.1.1 可选和默认的参数 .62
4.1.2 剩余参数64
4.1.3 call、apply 和bind 65
4.1.4 注解this 的类型 66
4.1.5 生成器函数 68
4.1.6 迭代器 .70
4.1.7 调用签名72
4.1.8 上下文类型推导 75
4.1.9 函数类型重载 76
4.2 多态 .83
4.2.1 什么时候绑定泛型 .88
4.2.2 可以在什么地方声明泛型 .89
4.2.3 泛型推导91
4.2.4 泛型别名93
4.2.5 受限的多态 95
4.2.6 泛型默认类型 100
4.3 类型驱动开发 101
4.4 小结 .102
4.5 练习题 .103
第5 章 类和接口 104
5.1 类和继承 104
5.2 super 110
5.3 以this 为返回类型 . 111
5.4 接口 . 113
5.4.1 声明合并 115
5.4.2 实现 . 117
5.4.3 实现接口还是扩展抽象类 . 119
5.5 类是结构化类型 120
5.6 类既声明值也声明类型 .121
5.7 多态 .124
5.8 混入 .125
5.9 装饰器 .129
5.10 模拟final 类 .132
5.11 设计模式 133
5.11.1 工厂模式 133
5.11.2 建造者模式 134
5.12 小结 .136
5.13 练习题 .136
第6 章 类型进阶 138
6.1 类型之间的关系 139
6.1.1 子类型和超类型 139
6.1.2 型变 .141
6.1.3 可赋值性148
6.1.4 类型拓宽149
6.1.5 细化 .154
6.2 全面性检查 159
6.3 对象类型进阶 161
6.3.1 对象类型的类型运算符 .161
6.3.2 Record 类型 .166
6.3.3 映射类型167
6.3.4 伴生对象模式 170
6.4 函数类型进阶 171
6.4.1 改善元组的类型推导 .171
6.4.2 用户定义的类型防护措施 .172
6.5 条件类型 174
6.5.1 条件分配175
6.5.2 infer 关键字 .177
6.5.3 内置的条件类型 178
6.6 解决办法 179
6.6.1 类型断言179
6.6.2 非空断言180
6.6.3 明确赋值断言 183
6.7 模拟名义类型 184
6.8 安全地扩展原型 187
6.9 小结 .189
6.10 练习题 .190
第7 章 处理错误 192
7.1 返回null 193
7.2 抛出异常 194
7.3 返回异常 197
7.4 Option 类型 199
7.5 小结 .206
7.6 练习题 .207
第8 章 异步编程、并发和并行 . 208
8.1 JavaScript 的事件循环 .209
8.2 处理回调 211
8.3 promise:让一切回到正轨 214
8.4 async 和await 219
8.5 异步流 .220
事件发射器.221
8.6 多线程类型安全 224
8.6.1 在浏览器中:使用Web 职程.224
8.6.2 在NodeJS 中:使用子进程 .234
8.7 小结 .235
8.8 练习题 .236
第9 章 前后端框架 237
9.1 前端框架 237
9.1.1 React 239
9.1.2 Angular 6/7 246
9.2 类型安全的API .250
9.3 后端框架 252
9.4 小结 .253
第10 章 命名空间和模块 254
10.1 JavaScript 模块简史 .255
10.2 import、export .258
10.2.1 动态导入 259
10.2.2 使用CommonJS 和AMD 模块 262
10.2.3 模块模式与脚本模式 .262
10.3 命名空间 263
10.3.1 冲突 .265
10.3.2 编译输出 266
10.4 声明合并 268
10.5 小结 .269
10.6 练习题 .270
第11 章 与JavaScript 互操作 271
11.1 类型声明 272
11.1.1 外参变量声明 275
11.1.2 外参类型声明 277
11.1.3 外参模块声明 278
11.2 逐步从JavaScript 迁移到TypeScript .280
11.2.1 第一步:添加TSC 280
11.2.2 第二步(上):对JavaScript 代码做类型检查(可选) 281
11.2.3 第二步(下):添加JSDoc 注解(可选) .283
11.2.4 第三步:把文件重命名为.ts .284
11.2.5 第四步:严格要求 .285
11.3 寻找JavaScript 代码的类型信息 .286
11.4 使用第三方JavaScript .289
11.4.1 自带类型声明的JavaScript 289
11.4.2 DefinitelyTyped 中有类型声明的JavaScript 290
11.4.3 DefinitelyTyped 中没有类型声明的JavaScript 290
11.5 小结 .292
第12 章 构建和运行TypeScript . 293
12.1 构建TypeScript 项目 .293
12.1.1 项目结构 293
12.1.2 构建产物 294
12.1.3 设置编译目标 295
12.1.4 生成源码映射 300
12.1.5 项目引用 300
12.1.6 监控错误 303
12.2 在服务器中运行TypeScript .304
12.3 在浏览器中运行TypeScript .304
12.4 把TypeScript 代码发布到NPM 中 307
12.5 三斜线指令 308
12.5.1 types 指令 309
12.5.2 amd-module 指令 .310
12.6 小结 . 311
第13 章 总结 313
附录A 类型运算符 . 315
附录B 实用类型 317
附录C 限定作用范围的声明 . 319
附录D 为第三方JavaScript 模块编写声明文件的
技巧 321
附录E 三斜线指令 . 329
附录F 安全相关的TSC 编译器标志 . 331
附录G TSX . 333