●前言基础篇章 Hello TypeScript 21.1 引言 21.1.1 JavaScript 与 ECMAScript 31.1.2 TypeScript 51.2 准备环境 81.2.1 安装 Node.js 81.2.2 npm和 Yarn 91.2.3 安装 TypeScript 101.3 Visual Studio Code 111.3.1 安装VSCode 111.3.2 安装Shell 命令 121.4 Hello World 121.5 本章小结 141.6 作业 14第2章 类型与函数 152.1 基本类型 152.1.1 JavaScript 的基本类型 162.1.2 TypeScript的基本类型 162.1.3 变量声明 182.1.4 泛型 192.1.5 枚举 222.1.6 symbol 252.1.7 iterator和generator 262.2 不错类型 312.2.1 interface 312.2.2 交叉类型与联合类型 322.2.3 类型保护与区分类型 352.2.4 typeof 与 instanceof 382.2.5 类型别名 402.2.6 字面量类型 412.2.7 索引类型与映射类型 412.2.8 类型推导 442.3 函数 482.3.1 定义函数 482.3.2 参数 492.3.3 回调函数和 promise 522.3.4 async 和 await 592.3.5 重载 592.4 本章小结 612.5 作业 61第3章 接口与类 633.1 接口 633.1.1 定义 643.1.2 函数类型 693.1.3 可索引类型 703.1.4 继承接口 713.2 类 723.2.1 定义 733.2.2 实现接口 733.2.3 继承 743.2.4 存取器 763.2.5 只读属性 773.2.6 类函数和静态属性 783.2.7 抽象类 783.3 本章小结 803.4 作业 80第4章 命名空间与模块 814.1 命名空间 814.1.1 单文件命名空间 814.1.2 多文件命名空间 834.1.3 别名 844.1.4 外部命名空间 854.2 模块 864.2.1 导出与导入 874.2.2 生成模块 914.2.3 外部模块 944.3 本章小结 974.4 作业 97实战篇第5章 命令行应用实战:天气查询 1065.1 创建项目 1065.1.1 初始化项目 1085.1.2 配置 TSConfig 1095.1.3 配置 TSLint 1125.1.4 使用 Git 1135.2 Commander.js 1175.2.1 格式化命令 1185.2.2 更好的输入 1205.2.3 添加色彩 1225.3 处理网络请求 1235.3.1 定义接口 1235.3.2 Promise 1255.3.3 await 和 async 1275.4 本章小结 1285.5 作业 128第6章 Express实战:后端服务 1296.1 创建项目 1296.1.1 初始化项目 1306.1.2 Husky 1316.2 定义数据结构 1326.2.1 连接数据库 1336.2.2 定义数据模型 1346.3 数据接口 1356.3.1 Express 1366.3.2 增删查改 1376.4 本章小结 1426.5 作业 143第7章 React 实战:桌面网站 1447.1 创建项目 1447.1.1 create-react-app 1457.1.2 配置 TypeScript 1477.1.3 配置 TSLint 1567.2 架构 1587.2.1 React-Router 1587.2.2 Redux 1607.3 编辑提醒事项 1637.3.1 组件 1647.3.2 Redux 组件 1667.3.3 Redux Persist 1707.3.4 处理网络请求 1747.4 实现列表 1807.4.1 实现列表页 1807.4.2 复用编辑组件 1827.5 测试 1907.5.1 配置 Jest 1907.5.2 组件的测试 1927.5.3 Action 的测试 1957.5.4 Reducer的测试 1967.6 本章小结 1977.7 作业 198第8章 React Native 实战:客户端开发 1998.1 创建项目 1998.1.1 配置开发环境 2008.1.2 创建 React Native 项目 2088.2 设计架构 2108.2.1 React Navigation 2118.2.2 Reudx 2128.2.3 列表页 2158.3 本章小结 2178.4 作业 217第9章 Vue 实战:HTML 5网页开发 2199.1 创建项目 2199.1.1 创建 Vue 项目 2209.1.2 写TypeScript代码 2219.2 实现列表 2259.2.1 vue-class-component 2259.2.2 网络请求 2289.2.3 列表页 2309.3 本章小结 2319.4 作业 2310章 小程序实战 23410.1 创建项目 23410.1.1 创建小程序 23610.1.2 创建 WePY 工程项目 23910.1.3 配置 TypeScript 24110.1.4 入口文件 24210.1.5 WePY页面 24310.1.6 WePY组件 24610.1.7 针对原生API进行优化 24610.2 实现列表 24710.2.1 网络请求 24710.2.2 列表页 24910.3 本章小结 24910.4 作业 2501章 项目迁移与社区共建 25111.1 项目迁移 25111.1.1 从 JavaScript 迁移到TypeScript 25211.1.2 从 Flow迁移到TypeScript 25311.2 社区共建 25411.2.1 贡献类型文件 25411.2.2 关注更新 25611.3 本章小结 25711.4 作业 257
内容简介
本书深入浅出地介绍TypeScript基础知识和开发技巧,可帮助读者快速入门并掌握TypeScript的开发。本书分为基础篇和实战篇,共11章。基础篇包括:TypeScript的类型与函数、接口与类、命名空间与模块。实战篇详细介绍如何在各种前端项目中应用TypeScript,包括命令行实战、Express实战,以及在React、React Native、Vue、微信小程序等项目中如何应用TypeScript,*后还介绍了项目迁移与社区共建等。
与 TypeScript相遇,还是在 ThoughtWorks 工作的时候。那个时候,我们需要维护大量的前端遗留项目,需要与客户规划我们的人效,需要控制系统迭代带来的 bug 率。我们接手的项目往往缺乏严谨的注释和完整的代码说明文档,这导致在维护 JavaScript 遗留项目时,需要花费更多的时间去厘清参数及函数之间的关系,甚至需要用 debugger 逐层去观察值的变化。工作非常低效,但客户的需求又总是急迫的,这迫使我们去思考如何提升团队的工作效率。这个时期也是 Facebook 开始推广Flow 的时候。我们觉得添加静态类型应该是个非常不错的方向,也看了很多应用静态类型的成功案例。碰巧Flow 对于遗留项目非常友好,你不需要为每个文件、每个函数、每行代码都添加类型,而只需要在你认为有必要的地方写上类型即可。所以我们很快进行了实验。然而,我们在采用 Flow后不久就发现了很多新产生的问......
评论晒单