×
暂无评论
图文详情
  • ISBN:9787519845964
  • 装帧:简裝本
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:352
  • 出版时间:2020-06-01
  • 条形码:9787519845964 ; 978-7-5198-4596-4

本书特色

这本书是深入学习TypeScript的不二之选。通过本书可以快速有效地掌握TypeScript的工具和生态系统。 你肯定听使用动态类型语言的程序员讲过,随着代码行数和工程师数量的增多,弹性伸缩将越来越难。正是出于这方面的考虑,Facebook、Google和Microsoft为JavaScript和Python套了一层渐进式静态类型。本书展示其中一种类型套层,即TypeScript的独特之处。借助TypeScript强大的静态类型系统,编程将变成一件充满乐趣的事。 本书针对JavaScript中级程序员,通过Boris Cherny的讲解,你将精通TypeScript语言,学会使用TypeScript摒除代码中的bug,在工程人员增多后仍能保证代码可弹性伸缩。 “这本书是深入学习TypeScript的不二之选。本书揭露了在 JavaScript的基础上使用类型系统的各种好处,详解了精通TypeScript语言的要领。”——Minko GechevGoogle Angular 团队的工程师“通过这本书,我快速而有效地掌握了 TypeScript 的工具和生态系统。以前我在实际使用中遇到的各种问题,在这本书中都有详细的实例讲解。'类型进阶'一章详细解释了我过去不懂的术语,而且展示了如何利用 TypeScript 提升代码的安全性,同时保障代码易于使用。”——Sean GroveOneGraph 联合创始人 本书首先介绍了TypeScript 的基本语法和基本的自动化工作流配置方法,然后从面向对象入手,着重介绍了面向对象的概念和它的一些*佳实践,并结合例子讲解了如何基于TypeScript 的类型系统应用这些*佳实践。随后剖析了TypeScript 在编译后的运行时行为,并从性能与测试的角度讲解了如何编写健壮的TypeScript 代码,所以书中还包括了性能分析与测试相关的内容。*后介绍了如何使用TypeScript 结合面向对象、MVC 等概念,结合本书前面提到的自动化的工作流、面向对象*佳实践、性能优化和测试等内容实现一个单页应用(SPA)框架,并用这个框架构建了一个单页应用。

内容简介

学习基础知识:学习 TypeScript 的不同类型和类型运算符,了解其作用和用法。
探讨不错话题:理解 TypeScript 复杂的类型系统,学习如何安全地处理错误和构建异步程序。
联系实际应用:在你钟爱的前后端框架中使用 TypeScript,把现有的 JavaScript 项目迁移到 TypeScript,以及在生产环境中运行 TypeScript 应用。

目录

前言 1

第1 章 导言 9

第2 章 TypeScript 概述 . 13

2.1 编译器 .13

2.2 类型系统 15

TypeScript VS. JavaScript.16

2.3 代码编辑器设置 20

2.3.1 tsconfig.json .20

2.3.2 tslint.json .22

2.4 index.ts 23

2.5 练习题 .24

第3 章 类型全解 26

3.1 类型术语 27

3.2 类型浅谈 28

3.2.1 any .28

3.2.2 unknown 30

3.2.3 boolean 30

3.2.4 number .32

3.2.5 bigint .33

3.2.6 string 34

3.2.7 symbol .34

3.2.8 对象 .35

3.2.9 中场休息:类型别名、并集和交集.42

3.2.10 数组 .46

3.2.11 元组 .48

3.2.12 null、undefined、void 和never .51

3.2.13 枚举 .53

3.3 小结 .58

3.4 练习题 .58

第4 章 函数 60

4.1 声明和调用函数 60

4.1.1 可选和默认的参数 .62

4.1.2 剩余参数64

4.1.3 call、apply 和bind 65

4.1.4 注解this 的类型 66

4.1.5 生成器函数 68

4.1.6 迭代器 .70

4.1.7 调用签名72

4.1.8 上下文类型推导 75

4.1.9 函数类型重载 76

4.2 多态 .83

4.2.1 什么时候绑定泛型 .88

4.2.2 可以在什么地方声明泛型 .89

4.2.3 泛型推导91

4.2.4 泛型别名93

4.2.5 受限的多态 95

4.2.6 泛型默认类型 100

4.3 类型驱动开发 101

4.4 小结 .102

4.5 练习题 .103

第5 章 类和接口 104

5.1 类和继承 104

5.2 super 110

5.3 以this 为返回类型 . 111

5.4 接口 . 113

5.4.1 声明合并 115

5.4.2 实现 . 117

5.4.3 实现接口还是扩展抽象类 . 119

5.5 类是结构化类型 120

5.6 类既声明值也声明类型 .121

5.7 多态 .124

5.8 混入 .125

5.9 装饰器 .129

5.10 模拟final 类 .132

5.11 设计模式 133

5.11.1 工厂模式 133

5.11.2 建造者模式 134

5.12 小结 .136

5.13 练习题 .136

第6 章 类型进阶 138

6.1 类型之间的关系 139

6.1.1 子类型和超类型 139

6.1.2 型变 .141

6.1.3 可赋值性148

6.1.4 类型拓宽149

6.1.5 细化 .154

6.2 全面性检查 159

6.3 对象类型进阶 161

6.3.1 对象类型的类型运算符 .161

6.3.2 Record 类型 .166

6.3.3 映射类型167

6.3.4 伴生对象模式 170

6.4 函数类型进阶 171

6.4.1 改善元组的类型推导 .171

6.4.2 用户定义的类型防护措施 .172

6.5 条件类型 174

6.5.1 条件分配175

6.5.2 infer 关键字 .177

6.5.3 内置的条件类型 178

6.6 解决办法 179

6.6.1 类型断言179

6.6.2 非空断言180

6.6.3 明确赋值断言 183

6.7 模拟名义类型 184

6.8 安全地扩展原型 187

6.9 小结 .189

6.10 练习题 .190

第7 章 处理错误 192

7.1 返回null 193

7.2 抛出异常 194

7.3 返回异常 197

7.4 Option 类型 199

7.5 小结 .206

7.6 练习题 .207

第8 章 异步编程、并发和并行 . 208

8.1 JavaScript 的事件循环 .209

8.2 处理回调 211

8.3 promise:让一切回到正轨 214

8.4 async 和await 219

8.5 异步流 .220

事件发射器.221

8.6 多线程类型安全 224

8.6.1 在浏览器中:使用Web 职程.224

8.6.2 在NodeJS 中:使用子进程 .234

8.7 小结 .235

8.8 练习题 .236

第9 章 前后端框架 237

9.1 前端框架 237

9.1.1 React 239

9.1.2 Angular 6/7 246

9.2 类型安全的API .250

9.3 后端框架 252

9.4 小结 .253

第10 章 命名空间和模块 254

10.1 JavaScript 模块简史 .255

10.2 import、export .258

10.2.1 动态导入 259

10.2.2 使用CommonJS 和AMD 模块 262

10.2.3 模块模式与脚本模式 .262

10.3 命名空间 263

10.3.1 冲突 .265

10.3.2 编译输出 266

10.4 声明合并 268

10.5 小结 .269

10.6 练习题 .270

第11 章 与JavaScript 互操作 271

11.1 类型声明 272

11.1.1 外参变量声明 275

11.1.2 外参类型声明 277

11.1.3 外参模块声明 278

11.2 逐步从JavaScript 迁移到TypeScript .280

11.2.1 **步:添加TSC 280

11.2.2 第二步(上):对JavaScript 代码做类型检查(可选) 281

11.2.3 第二步(下):添加JSDoc 注解(可选) .283

11.2.4 第三步:把文件重命名为.ts .284

11.2.5 第四步:严格要求 .285

11.3 寻找JavaScript 代码的类型信息 .286

11.4 使用第三方JavaScript .289

11.4.1 自带类型声明的JavaScript 289

11.4.2 DefinitelyTyped 中有类型声明的JavaScript 290

11.4.3 DefinitelyTyped 中没有类型声明的JavaScript 290

11.5 小结 .292

第12 章 构建和运行TypeScript . 293

12.1 构建TypeScript 项目 .293

12.1.1 项目结构 293

12.1.2 构建产物 294

12.1.3 设置编译目标 295

12.1.4 生成源码映射 300

12.1.5 项目引用 300

12.1.6 监控错误 303

12.2 在服务器中运行TypeScript .304

12.3 在浏览器中运行TypeScript .304

12.4 把TypeScript 代码发布到NPM 中 307

12.5 三斜线指令 308

12.5.1 types 指令 309

12.5.2 amd-module 指令 .310

12.6 小结 . 311

第13 章 总结 313

附录A 类型运算符 . 315

附录B 实用类型 317

附录C 限定作用范围的声明 . 319

附录D 为第三方JavaScript 模块编写声明文件的

技巧 321

附录E 三斜线指令 . 329

附录F 安全相关的TSC 编译器标志 . 331

附录G TSX . 333


展开全部

作者简介

Boris Cherny 就职于 Facebook,是工程和产品部门主管。他曾在风投公司、广告技术公司和一些初创公司工作。他喜欢研究编程语言、代码合成和静态分析,乐于构建让人钟爱的用户体验。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航