第1章 TypeScript基础 1
1.1什么是TypeScript 2
1.2为什么要学习TypeScript 5
1.2.1 TypeScript与JavaScript对比有什么优势 6
1.2.2 TypeScript给前端开发带来的好处 7
1.3安装TypeScript 8
1.3.1 npm安装 8
1.3.2 Visual Studio插件安装 10
1.4开始第一个TypeScript文件 13
1.4.1选择TypeScript编辑器 13
1.4.2编写TypeScript文件 15
1.4.3编译TypeScript文件 16
1.4.4在网页中调用TypeScript文件 17
1.5 TypeScript的组成部分(语言、编译器、语言服务) 18
1.6小结 18
第2章 TypeScript基本语法 19
2.1认识一些编程语言的术语 19
2.1.1标识符 19
2.1.2数据类型 20
2.1.3原始数据类型 20
2.1.4变量和参数 20
2.1.5函数和方法 20
2.1.6表达式和语句 21
2.1.7字面量 21
2.2认识TypeScript的简单语法 21
2.2.1注释语法 21
2.2.2区分大小写 22
2.2.3保留字 22
2.2.4语句用;分隔 22
2.2.5文件扩展名为.ts 23
2.2.6变量声明 23
2.2.7异常处理 23
2.3类型 24
2.3.1基础类型 25
2.3.2枚举 27
2.3.3任意值 30
2.3.4空值、Null与Undefined 32
2.3.5 Never 34
2.3.6 Symbols 34
2.3.7交叉类型 36
2.3.8 Union类型 37
2.3.9类型断言 40
2.4 let与var 41
2.4.1 let声明的变量是块级作用域 42
2.4.2 let不允许在同域中声明同名变量 42
2.4.3 let禁止声明前访问 43
2.5变量 45
2.5.1声明变量 46
2.5.2变量的作用域 47
2.5.3 const声明变量 48
2.6运算符 50
2.6.1算术运算符 50
2.6.2关系运算符 51
2.6.3逻辑运算符 52
2.6.4按位运算符 52
2.6.5赋值运算符 53
2.6.6等号运算符 54
2.6.7否定运算符(-) 54
2.6.8连接运算符(+) 55
2.6.9条件运算符(?) 55
2.6.10类型运算符(typeof) 55
2.6.11 instanceof运算符 57
2.6.12展开运算符(…) 57
2.7数字 59
2.7.1 Number的属性 60
2.7.2 NaN 61
2.7.3 prototype 61
2.7.4 Number的方法 62
2.8字符串 64
2.8.1构造函数 64
2.8.2 prototype 64
2.8.3字符串的方法 65
2.9小结 66
第3章 流程控制 67
3.1条件判断 68
3.1.1 if、 if…else 69
3.1.2嵌套if 72
3.1.3 switch 73
3.2循环 76
3.2.1 for 77
3.2.2 while 79
3.2.3 do …while 79
3.3 break和continue 80
3.4小结 83
第4章 数组、元组 84
4.1数组 84
4.1.1数组的概念和特征 84
4.1.2声明和初始化数组 86
4.1.3访问数组元素 88
4.1.4数组对象 90
4.1.5数组方法 94
4.1.6数组解构 104
4.1.7数组的遍历 106
4.1.8多维数组 108
4.2元组 110
4.2.1元组的概念和特征 110
4.2.2访问元组中的值 111
4.2.3元组操作(push和pop) 112
4.2.4元组更新 113
4.2.5元组解构 113
4.3迭代器和生成器 114
4.3.1迭代器 114
4.3.2生成器 115
4.4小结 119
第5章 函数 120
5.1一个完整的函数 120
5.1.1定义函数 121
5.1.2调用函数 125
5.1.3返回功能 134
5.1.4参数化功能 139
5.2函数的参数 140
5.2.1可选参数 141
5.2.2 Rest参数(剩余参数) 142
5.2.3默认参数 143
5.2.4参数类型推断 144
5.2.5单个参数的可选括号 145
5.2.6类型注解 146
5.3特殊函数 147
5.3.1匿名函数 147
5.3.2构造函数 149
5.3.3递归函数 150
5.3.4 lambda函数 152
5.3.5函数重载 155
5.4函数与数组 158
5.4.1将数组传递给函数 158
5.4.2从函数返回数组 159
5.5小结 159
第6章 项目必备工具 160
6.1使用Visual Studio Code 161
6.1.1在Visual Studio Code中新建TypeScript应用 163
6.1.2配置Visual Studio Code的launch.json 164
6.1.3初始化项目package.json 169
6.1.4安装typescript依赖 172
6.1.5添加并配置tsconfig.json 173
6.1.6添加并配置tasks.json 175
6.1.7调试运行 177
6.2使用ESLint 179
6.2.1安装ESLint 180
6.2.2创建ESLint配置文件 181
6.2.3检查ts文件 184
6.3使用TSLint 186
6.3.1安装TSLint工具 187
6.3.2创建TSLint配置文件 187
6.3.3检查ts文件 188
6.4使用Jest 190
6.4.1安装Jest 191
6.4.2 Jest初始化配置 191
6.4.3 Jest 测试 192
6.5使用webpack 195
6.5.1安装webpack 197
6.5.2配置webpack.config.js 199
6.5.3构建本地服务器 203
6.6小结 205
第7章 面向对象编程 206
7.1对象 209
7.1.1创建简单对象 209
7.1.2给对象添加函数 211
7.1.3 duck-typing 215
7.2类 216
7.2.1创建一个类 216
7.2.2创建实例对象 218
7.2.3访问类的属性和函数 218
7.2.4类的继承 219
7.2.5方法重载 222
7.2.6装饰器 225
7.2.7 static静态关键字 231
7.2.8 instanceof运算符 231
7.2.9类成员的可见性 232
7.3接口 234
7.3.1声明接口 234
7.3.2 Union Type和接口 238
7.3.3接口和数组 239
7.3.4接口的继承 240
7.3.5类也可以实现接口 242
7.4命名空间 244
7.4.1定义命名空间 244
7.4.2嵌套命名空间 246
7.5外部模块 247
7.5.1模块加载器 248
7.5.2定义外部模块 263
7.6 TypeScript如何解析模块 269
7.6.1模块导入路径解析 269
7.6.2模块解析策略 270
7.6.3 baseUrl 272
7.6.4路径映射 273
7.7声明合并 277
7.7.1合并接口 277
7.7.2合并命名空间 278
7.7.3合并命名空间和类 279
7.7.4全局扩展 280
7.8小结 281
第8章 泛型 282
8.1泛型的定义 282
8.1.1泛型函数的定义 283
8.1.2泛型类的定义 283
8.1.3泛型接口的定义 284
8.2详解泛型变量 284
8.3详解泛型函数 285
8.4详解泛型类 287
8.5详解泛型约束 290
8.6小结 291
第9章 TypeScript声明文件与项目配置 292
9.1声明文件 292
9.1.1全局库 293
9.1.2模块化库 296
9.2项目配置 301
9.3项目引用 306
9.4三斜线指令 308
9.5小结 309
第10章 实战:使用TypeScript+Node创建列表APP 310
10.1创建项目 310
10.2配置tsconfig.json 313
10.3列表APP的前端设计与开发 314
10.4列表APP的服务端设计与开发 321
10.5编译和启动服务器 326
10.6运行APP项目 330
10.7小结 332
附录 TypeScript JSX介绍 333
f.1基本用法 333
f.2 as操作符 334
f.3类型检查 334
f.4嵌入的表达式 338
f.5 TypeScript+React整合 338