第1章 为什么要使用TypeScript
1.1 开始使用TypeScript
1.2 选择TypeScript的理由
1.3 总结
第2章 JavaScript常见语法
2.1 相等
2.2 引用
2.3 null和undefined
2.4 this
2.5 闭包
2.6 数字
2.7 truthy
第3章 JavaScript 新语法特性
3.1 类
3.2 箭头函数
3.3 rest参数
3.4 let
3.5 const
3.6 解构
3.7 扩展运算符
3.8 for...of
3.9 迭代
3.10 模板字符串
3.11 Promise
3.12 generators
3.13 async/await
第4章 TypeScript项目构成
4.1 编译上下文
4.2 声明空间
4.3 模块
4.4 命名空间
4.5 动态导入表达式
第5章 快速创建TypeScript项目
5.1 在Node.js中使用TypeScript
5.2 在浏览器中使用TypeScript
5.3 创建一个TypeScript模块
第6章 TypeScript类型系统
6.1 基本概念
6.2 迁移JavaScript代码至TypeScript
6.3 @types
6.4 环境声明
6.5 接口
6.6 枚举
6.7 lib.d.ts
6.8 函数
6.9 可调用
6.10 类型断言
6.11 Freshness
6.12 类型保护
6.13 字面量类型
6.14 readonly
6.15 泛型
6.16 类型推断
6.17 类型兼容性
6.18 never
6.19 辨析联合类型
6.20 索引签名
6.21 类型移动
6.22 异常处理
6.23 混合
6.24 ThisType
第7章 关于 JSX
7.1 React JSX
7.2 非React JSX
第8章 TypeScript编译选项设置
8.1 boolean选项
8.2 noImplicitAny
8.3 strictNullChecks
第9章 TypeScript错误处理
9.1 解读错误
9.2 常见的错误
第10章 开发与测试工具
10.1 npm
10.2 在Jest中使用TypeScript
10.3 Prettier
10.4 Husky
10.5 ESlint
10.6 Changelog
第11章 提示与建议
11.1 名义化类型
11.2 状态函数
11.3 柯里化
11.4 泛型的实例化类型
11.5 对象字面量的惰性初始化
11.6 类是有用的
11.7 默认导出被认为是有害的
11.8 减少setter属性的使用
11.9 谨慎使用--outFile
11.10 TypeScript的静态构造函数
11.11 单例模式
11.12 函数参数
11.13 构建切换
11.14 barrel
11.15 创建数组
11.16 类型安全的Event Emitter
11.17 Reflect Metadata
11.18 协变与逆变
第12章 TypeScript代码风格指南与代码约定
12.1 变量和函数
12.2 类
12.3 接口
12.4 类型别名
12.5 命名空间
12.6 枚举类型
12.7 null和undefined
12.8 格式化
第13章 TypeScript编译原理
13.1 编译器
13.2 程序
13.3 抽象语法树
13.4 扫描器
13.5 解析器
13.6 绑定器
13.7 检查器
13.8 发射器