前言 XVIII
1 TypeScript 简介 1
TypeScript 的架构 1
设计目标 1
TypeScript 组件 3
TypeScript 语言特性 4
类型 6
变量、基本类型和运算符 7
流程控制语句 14
函数 18
类 20
接口 22
命名空间 22
综合运用 23
小结 25
2 自动化工作流程 26
一个现代化的开发工作流程 26
准备工作 27
Node.js 27
Atom 27
Git 和GitHub 30
版本控制工具 30
包管理工具 34
npm 35
Bower 38
tsd 38
自动化任务工具 39
检查TypeScript 代码的质量 41
编译TypeScript 代码 42
优化TypeScript 应用 44
管理Gulp 任务的执行顺序 48
自动化测试工具 50
使跨设备测试同步 52
持续集成工具 55
脚手架工具 56
小结 58
3 使用函数 59
在TypeScript 中使用函数 60
函数声明和函数表达式 60
函数类型 61
有可选参数的函数 62
有默认参数的函数 63
有剩余参数的函数 64
函数重载 66
特定重载签名 67
函数作用域 68
立即调用函数 71
范型 74
tag 函数和标签模板 77
TypeScript 中的异步编程 78
回调和高阶函数 79
箭头函数 79
回调地狱 81
promise 86
生成器 91
异步函数——async 和await 93
小结 93
4 TypeScript 中的面向对象编程 94
SOLID 原则 95
类 95
接口 99
关联、聚合和组合 100
关联 100
聚合 100
组合 100
继承 101
混合 104
范型类 109
范型约束 113
在范型约束中使用多重类型 117
范型中的 new 操作 118
遵循SOLID 原则 118
里氏替换原则 118
接口隔离原则 120
依赖反转原则 122
命名空间 122
模块 124
ES6 模块——运行时与程序设计时 126
外部模块语法——仅在程序设计阶段可用 127
AMD 模块定义语法——仅在运行时使用 128
CommonJS 模块定义语法——仅在运行时使用 129
UMD 模块定义语法——仅在运行时使用 130
SystemJS 模块定义——仅在运行时使用 131
循环依赖 131
小结 133
5 运行时 134
环境 135
运行时的一些概念 135
帧 136
栈 137
队列 137
堆 137
事件循环 137
this 操作符 138
全局上下文中的this 操作符 139
函数上下文中的this 操作符 139
call、apply 和bind 方法 140
原型 143
实例属性与类属性的对比 144
基于原型的继承 147
原型链 151
访问对象的原型 152
new 操作符 153
闭包 153
闭包和静态变量 155
闭包和私有成员 157
小结 159
6 应用性能 160
准备工作 160
性能和资源 161
性能指标 162
可用性 162
响应时间 162
处理速度 162
延迟 162
带宽 163
可伸缩性 163
性能分析 163
网络性能分析 163
网络性能与用户体验 168
GPU 性能分析 172
CPU 性能分析 174
内存性能分析 176
垃圾回收器 178
性能自动化 178
性能优化自动化 178
性能监测自动化 179
性能测试自动化 180
错误处理 180
Error 类 181
try…catch 语句和 throw 语句 182
小结 182
7 应用测试 183
软件测试术语表 183
断言 184
测试规范 185
测试用例 185
测试套件 185
测试监视 185
替身 185
测试桩 185
模拟 185
测试覆盖率 186
必要的准备 186
Gulp 187
Karma 187
Istanbul 187
Mocha 187
Chai 188
Sinon.JS 188
类型定义 188
PhantomJS 189
Selenium 和 Nightwatch.js 189
测试计划和方法 190
测试驱动开发 190
行为驱动测试 191
测试计划和测试类型 191
建立测试基础结构 192
使用Gulp 构建这个程序 193
使用Karma 运行单元测试 197
使用Selenium 和Nightwatch.js 运行E2E 测试 200
使用Mocha 和Chai 创建测试断言、规范和套件 203
测试异步代码 207
断言异常 208
Mocha 和Chai 的TDD 与BDD 对比 209
使用Sinon.JS 编写测试监视和测试桩 209
测试监视 213
测试桩 215
使用Nightwatch.js 创建端对端测试 216
生成测试覆盖率报告 217
小结 220
8 装饰器 221
条件准备 221
注解和装饰器 222
类装饰器 223
方法装饰器 226
属性装饰器 228
参数装饰器 230
装饰器工厂 232
带有参数的装饰器 234
反射元数据 API 235
小结 239
9 应用架构 240
单页应用架构 241
MV* 架构 246
MV* 框架中的组件和功能 247
model 247
collection 248
item view 248
collection view 249
controller 250
事件 251
路由和 hash (#) 导航 251
中介器 254
调度器 255
客户端渲染和 Virtual DOM 256
用户界面数据绑定 256
数据流 258
Web component 和 shadow DOM 259
选择一个程序框架 260
从零开始实现一个MVC 框架 261
准备工作 262
程序事件 264
中介器 265
程序组件 268
路由表 270
事件发射 271
路由 272
调度器 275
controller 279
model 和model settings 280
view 和view settings 283
框架 287
小结 288
10 汇总 289
准备工作 289
程序依赖 290
程序中的数据 291
程序架构 292
程序文件结构 293
配置自动构建流程 294
程序布局 297
实现根组件 298
实现market controller 299
实现NASDAQ model 302
实现NYSE model 303
实现market view 304
实现market 模板 306
实现symbol controller 308
实现quote model 309
实现symbol view 311
实现chart model 313
实现chart view 316
测试应用 318
准备发布程序 319
小结 320
· · · · · · (
收起)