前言
基础篇
第1章 Hello TypeScript 2
1.1 引言 2
1.1.1 JavaScript 与 ECMAScript 3
1.1.2 TypeScript 5
1.2 准备环境 8
1.2.1 安装 Node.js 8
1.2.2 npm和 Yarn 9
1.2.3 安装 TypeScript 10
1.3 Visual Studio Code 11
1.3.1 安装VSCode 11
1.3.2 安装Shell 命令 12
1.4 Hello World 12
1.5 本章小结 14
1.6 作业 14
第2章 类型与函数 15
2.1 基本类型 15
2.1.1 JavaScript 的基本类型 16
2.1.2 TypeScript的基本类型 16
2.1.3 变量声明 18
2.1.4 泛型 19
2.1.5 枚举 22
2.1.6 symbol 25
2.1.7 iterator和generator 26
2.2 高级类型 31
2.2.1 interface 31
2.2.2 交叉类型与联合类型 32
2.2.3 类型保护与区分类型 35
2.2.4 typeof 与 instanceof 38
2.2.5 类型别名 40
2.2.6 字面量类型 41
2.2.7 索引类型与映射类型 41
2.2.8 类型推导 44
2.3 函数 48
2.3.1 定义函数 48
2.3.2 参数 49
2.3.3 回调函数和 promise 52
2.3.4 async 和 await 59
2.3.5 重载 59
2.4 本章小结 61
2.5 作业 61
第3章 接口与类 63
3.1 接口 63
3.1.1 定义 64
3.1.2 函数类型 69
3.1.3 可索引类型 70
3.1.4 继承接口 71
3.2 类 72
3.2.1 定义 73
3.2.2 实现接口 73
3.2.3 继承 74
3.2.4 存取器 76
3.2.5 只读属性 77
3.2.6 类函数和静态属性 78
3.2.7 抽象类 78
3.3 本章小结 80
3.4 作业 80
第4章 命名空间与模块 81
4.1 命名空间 81
4.1.1 单文件命名空间 81
4.1.2 多文件命名空间 83
4.1.3 别名 84
4.1.4 外部命名空间 85
4.2 模块 86
4.2.1 导出与导入 87
4.2.2 生成模块 91
4.2.3 外部模块 94
4.3 本章小结 97
4.4 作业 97
实战篇
第5章 命令行应用实战:天气查询 106
5.1 创建项目 106
5.1.1 初始化项目 108
5.1.2 配置 TSConfig 109
5.1.3 配置 TSLint 112
5.1.4 使用 Git 113
5.2 Commander.js 117
5.2.1 格式化命令 118
5.2.2 更好的输入 120
5.2.3 添加色彩 122
5.3 处理网络请求 123
5.3.1 定义接口 123
5.3.2 Promise 125
5.3.3 await 和 async 127
5.4 本章小结 128
5.5 作业 128
第6章 Express实战:后端服务 129
6.1 创建项目 129
6.1.1 初始化项目 130
6.1.2 Husky 131
6.2 定义数据结构 132
6.2.1 连接数据库 133
6.2.2 定义数据模型 134
6.3 数据接口 135
6.3.1 Express 136
6.3.2 增删查改 137
6.4 本章小结 142
6.5 作业 143
第7章 React 实战:桌面网站 144
7.1 创建项目 144
7.1.1 create-react-app 145
7.1.2 配置 TypeScript 147
7.1.3 配置 TSLint 156
7.2 架构 158
7.2.1 React-Router 158
7.2.2 Redux 160
7.3 编辑提醒事项 163
7.3.1 组件 164
7.3.2 Redux 组件 166
7.3.3 Redux Persist 170
7.3.4 处理网络请求 174
7.4 实现列表 180
7.4.1 实现列表页 180
7.4.2 复用编辑组件 182
7.5 测试 190
7.5.1 配置 Jest 190
7.5.2 组件的测试 192
7.5.3 Action 的测试 195
7.5.4 Reducer的测试 196
7.6 本章小结 197
7.7 作业 198
第8章 React Native 实战:客户端开发 199
8.1 创建项目 199
8.1.1 配置开发环境 200
8.1.2 创建 React Native 项目 208
8.2 设计架构 210
8.2.1 React Navigation 211
8.2.2 Reudx 212
8.2.3 列表页 215
8.3 本章小结 217
8.4 作业 217
第9章 Vue 实战:HTML 5网页开发 219
9.1 创建项目 219
9.1.1 创建 Vue 项目 220
9.1.2 写TypeScript代码 221
9.2 实现列表 225
9.2.1 vue-class-component 225
9.2.2 网络请求 228
9.2.3 列表页 230
9.3 本章小结 231
9.4 作业 231
第10章 小程序实战 234
10.1 创建项目 234
10.1.1 创建小程序 236
10.1.2 创建 WePY 工程项目 239
10.1.3 配置 TypeScript 241
10.1.4 入口文件 242
10.1.5 WePY页面 243
10.1.6 WePY组件 246
10.1.7 针对原生API进行优化 246
10.2 实现列表 247
10.2.1 网络请求 247
10.2.2 列表页 249
10.3 本章小结 249
10.4 作业 250
第11章 项目迁移与社区共建 251
11.1 项目迁移 251
11.1.1 从 JavaScript 迁移到TypeScript 252
11.1.2 从 Flow迁移到TypeScript 253
11.2 社区共建 254
11.2.1 贡献类型文件 254
11.2.2 关注更新 256
11.3 本章小结 257
11.4 作业 257