TypeScript编程
温馨提示:5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>
- 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,是工程和产品部门主管。他曾在风投公司、广告技术公司和一些初创公司工作。他喜欢研究编程语言、代码合成和静态分析,乐于构建让人钟爱的用户体验。
-
深度学习的数学
¥43.5¥69.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0 -
贝叶斯推理与机器学习
¥139.3¥199.0