深入理解TypeScript
  • 推荐0
  • 收藏4
  • 浏览927

深入理解TypeScript

Basarat Ali Syed (作者)  郭文超 , 何小磊 , 柳星 , 徐野 (译者) 张春雨 (责任编辑)

  • 书  号:ISBN 978-7-121-37651-1
  • 出版日期:2020-01-01
  • 页  数:360
  • 开  本:16(185*235)
  • 出版状态:图书立项
  • 原书名: TypeScript Deep Dive
  • 原书号:9789888407125
  • 维护人:崔志伟
TypeScript是一种由微软开发的、开源的编程语言,近两年来发展很迅猛,已经成为很多大型项目的标配。本书涵盖了TypeScript的大部分知识点,并对其进行了细致的讲解;本书示例丰富、简单易懂,你甚至可以直接把这些例子用于自己的开发工作;本书还对TypeScript编译原理进行了深入的剖析,力争让读者知其然,并知其所以然。
本书不仅为TypeScript初学者安排了与JavaScript相关的基础知识,而且对高级编程技巧、编译原理进行了深入浅出的解读,相信对于想深入了解TypeScript的开发者来说,通过阅读本书也能获得较大的提升。
本书为TypeScript Deep Dive中文版,阐述了JavaScript与TypeScript的关系,TypeScript类型系统的基础语法、编译原理等,清晰透彻,深入浅出。
本书作者是澳大利亚的Basarat Ali Syed,他是TypeScript专家、微软JavaScript /TypeScript的MVP贡献者。
本书作者

Basarat Ali Syed是TypeScript专家,微软JavaScript/TypeScript的MVP贡献者。他是TypeScript社区受人尊敬的成员,澳洲Picnic software高级开发人员,在DefinitelyTyped团队工作。Basarat经常参加澳大利亚与前端开发技术有关的会议,在多个技术活动中做过演讲。Basarat还著有Beginning Node.js一书,目前该书已被下载39000多次,在ya马逊、豆瓣等平台得到了读者的一致好评。


本书译者

郭文超:TypeScript深度爱好者,常用笔名三毛,公众号 FENews 主要维护者。曾在 TutorABC、eBay 任职,目前在千寻位置担任前端工程师。对 TypeScript、React、Vue 等有较深理解。

何小磊:山西能快科贸CTO,有十年以上软件开发经验。

柳星:TypeScript 重度用户,常用网名 S1ngS1ng,是 freeCodeCamp 中文社区的维护者之一。曾在 Rackspace、VMware、Apple 任前端工程师一职。

徐野:携程AI研发部前端工程师。热爱大前端,爱折腾新鲜技术,精通 TypeScript、React、Node 等前端技术。
TypeScript是一种由微软开发的、开源的编程语言,自2012年10月发布首个公开版本以来,它已得到了人们的广泛认可。

TypeScript发展至今,已经成为很多大型项目的标配,其提供的静态类型系统,大大增强了代码的可读性及可维护性;同时,它提供最新的和不断发展的JavaScript特性,能让我们构建更健壮的组件。
相信随着前端项目的日益庞大,TypeScript将会被越来越多的开发者使用。
主要内容
本书是TypeScript Deep Dive的中文版,下面是每个章节的内容概要。
第1章:本章主要介绍学习TypeScript之前需要具备的一些知识,以及为什么要使用TypeScript。从中你可以学到TypeScript与JavaScript的不同之处。
第2章:本章主要介绍与JavaScript有关的一些基础知识。熟练使用TypeScript的一个重要前提是要了解JavaScript。
第3章:本章主要介绍与ES6+ 有关的知识点,与之相关的功能已经可以在TypeScript中使用了。
注:ES6是ECMAScript 6.0的简称,ECMAScript可以被理解为JavaScript的标准。本书约定,ES6+ 指的是ECMAScript 6.0及以上的版本。
第4章:本章将会介绍TypeScript项目中的编译上下文、声明空间、模块、命名空间和动态导入表达式。
第5章:本章将教会你如何快速创建一个TypeScript项目。
第6章:本章将介绍TypeScript的类型系统,通过本章的学习,读者将能够理解并灵活运用类型注解。这将为读者进一步了解类型系统做好铺垫。
第7章:本章将介绍在React JSX(JSX即JavaScript XML,是一种JavaScript和XML混写的语法,是对JavaScript的扩展)中如何使用TypeScript。
第8章:本章将介绍编译选项,会着重介绍noImpliciAny和strictNullChecks。
第9章:本章将介绍在TypeScript中常见错误的原因及错误的处理办法。
第10章:本章将介绍TypeScript开发与测试中常用的一些工具,如npm、Jest、Prettier、Husky、ESlint、Changelog等。
第11章:本章将介绍在真实项目中使用TypeScript时的一些小技巧和一些好的建议。
第12章:本章将推荐一些TypeScript的代码风格。
第13章:本章将介绍TypeScript的编译原理,让读者知其然,并知其所以然。
读者须知
为了更好地掌握本书内容,你需要具备一定的JavaScript知识,但这并不是必需的,因为在本书的第1、2、3章,我们将会一起学习JavaScript。
参考资料说明
本书提供了大量的参考资料以方便读者更好地了解书中提到的相关技术及工具。为了保证参考资料相关链接能够实时更新,特将“参考资料”文档放于博文视点官方网站,读者可在http://www.broadview.com.cn/37651页面进行下载。

目录

第1章 为什么要使用TypeScript 1
1.1 开始使用TypeScript 1
1.2 选择TypeScript的理由 2
1.3 总结 6
第2章 JavaScript常见语法 7
2.1 相等 9
2.2 引用 10
2.3 null和undefined 11
2.4 this 15
2.5 闭包 16
2.6 数字 18
2.7 truthy 22
第3章 JavaScript 新语法特性 24
3.1 类 24
3.2 箭头函数 34
3.3 rest参数 39
3.4 let 39
3.5 const 44
3.6 解构 45
3.7 扩展运算符 49
3.8 for...of 51
3.9 迭代 53
3.10 模板字符串 58
3.11 Promise 61
3.12 generators 76
3.13 async/await 79
第4章 TypeScript项目构成 89
4.1 编译上下文 89
4.2 声明空间 93
4.3 模块 94
4.4 命名空间 104
4.5 动态导入表达式 105
第5章 快速创建TypeScript项目 108
5.1 在Node.js中使用TypeScript 108
5.2 在浏览器中使用TypeScript 109
5.3 创建一个TypeScript模块 114
第6章 TypeScript类型系统 117
6.1 基本概念 117
6.2 迁移JavaScript代码至TypeScript 126
6.3 @types 130
6.4 环境声明 131
6.5 接口 133
6.6 枚举 136
6.7 lib.d.ts 144
6.8 函数 153
6.9 可调用 158
6.10 类型断言 160
6.11 Freshness 163
6.12 类型保护 166
6.13 字面量类型 172
6.14 readonly 176
6.15 泛型 181
6.16 类型推断 186
6.17 类型兼容性 190
6.18 never 201
6.19 辨析联合类型 203
6.20 索引签名 209
6.21 类型移动 218
6.22 异常处理 220
6.23 混合 225
6.24 ThisType 227
第7章 关于 JSX 231
7.1 React JSX 232
7.2 非React JSX 239
第8章 TypeScript编译选项设置 241
8.1 boolean选项 241
8.2 noImplicitAny 242
8.3 strictNullChecks 243
第9章 TypeScript错误处理 247
9.1 解读错误 247
9.2 常见的错误 249
第10章 开发与测试工具 252
10.1 npm 252
10.2 在Jest中使用TypeScript 255
10.3 Prettier 261
10.4 Husky 261
10.5 ESlint 262
10.6 Changelog 264
第11章 提示与建议 266
11.1 名义化类型 266
11.2 状态函数 270
11.3 柯里化 271
11.4 泛型的实例化类型 271
11.5 对象字面量的惰性初始化 272
11.6 类是有用的 274
11.7 默认导出被认为是有害的 276
11.8 减少setter属性的使用 279
11.9 谨慎使用--outFile 280
11.10 TypeScript的静态构造函数 283
11.11 单例模式 283
11.12 函数参数 284
11.13 构建切换 285
11.14 barrel 287
11.15 创建数组 289
11.16 类型安全的Event Emitter 289
11.17 Reflect Metadata 291
11.18 协变与逆变 297
第12章 TypeScript代码风格指南与代码约定 300
12.1 变量和函数 300
12.2 类 301
12.3 接口 301
12.4 类型别名 302
12.5 命名空间 302
12.6 枚举类型 303
12.7 null和undefined 304
12.8 格式化 305
第13章 TypeScript编译原理 308
13.1 编译器 308
13.2 程序 310
13.3 抽象语法树 311
13.4 扫描器 315
13.5 解析器 317
13.6 绑定器 321
13.7 检查器 333
13.8 发射器 335

读者评论

  • 我来说一下,这本书英文原版读起来并没有那么混乱,编排上其实溯源了很多上古知识,即便对新人不太友好,但是至少也是一本8分的书。
    但是,重点来了,这本书的翻译真的是烂到了海枯石烂,是的,海枯石烂,直接把8分翻译成了-1分。代码能复制错,注释该翻译的不翻译不该翻译的瞎翻译,错别字连篇累牍,句子经常少字甚至是主谓宾混乱。
    而且,能明显感觉出,这些翻译者的水平参差不齐,关键术语前后没有对齐,甚至能出现把‘无法访问未定义变量的属性’翻译成‘无法读取未定义的属性’这样的根本性的错误,感觉和机器翻译一样。
    我的建议是,看这本书,英文好的还是看原版吧,看这个你如果知识扎实还好,看着只是糟心,能脑补修正。知识不扎实,看着简直毁人。。。
    冲着责编是春雨老师买的此书,之前跟春雨老师也有交流,但是这本书实在是差得令人发指。
    建议重新翻译不要再印了……

    stefanqi发表于 2020/6/6 21:16:03
    • 哈哈,“脑补修正”四个字好妙,所以我看这本书很痛苦。

      jeffacode发表于 2020/6/20 20:19:16
  • 这本书我看了200页,真的是特意跑来注册一个账号吐槽下:1.这本书一共才300来页,花了80多页讲ES6,有滥竽充数之嫌。2.真正重要的核心基础全部丢在第六章,洋洋洒洒写了100多页,然后前后组织极其混乱,就不知道为啥突然开始讲这个了,然后很多语言也不通顺,举的例子也不是很典型。这个弊端就是,如果是小白来读,可能第一遍能理解60%就不错了,但脑子里不会有个清晰的概念组织关系,可能半个月就全都忘光了。给我的感觉就是这个作者压根就不会写书,这种混乱的编排要是交给O’Reilly出版的话肯定马上拒掉!

    jeffacode发表于 2020/5/23 18:06:53
    • 看到227页真的绝了哈哈,作者说要解释下mixin的这个例子,结果,复制了前一页的原话和代码,啥解释都没有,那你告诉我1.T={}是为啥?2.TBase extends Constructor是为啥?

      jeffacode发表于 2020/5/26 8:36:53
  • 对这本书挺失望的,基础讲的十分混乱,代码先不说错误,光是翻译就很让人迷惑,很难理解。

    十筱涛发表于 2020/1/30 15:53:54
    • 很抱歉这本书没有让您满意,具体让您困惑的地方可在此处留言,也可以发邮件到cuizw@phei.com.cn,祝生活愉快!

      崔志伟发表于 2020/3/18 10:40:11

图书类别

相关博文

相关图书

拿下Offer:数据分析师求职面试指南

徐麟 (作者)

本书针对未来想要从事数据分析工作的在校学生、想要转行做数据分析的在职人员,以及想要在数据分析领域提高自己或跳槽的从业人员,深入浅出地讲解了面试和未来实际工作中所...

¥69.00

Python 3 爬虫、数据清洗与可视化实战(第2版)

陈海城 (作者)

本书是一本通过实战教初学者学习爬取数据、清洗和组织数据进行分析和可视化的Python 读<br>物。书中案例均经过实战检验,笔者在实践过程中深感采集数据、清洗和...

¥69.00

Flutter开发实战详解

郭树煜 (作者)

本书以实战为导向,由浅入深地介绍了Flutter开发过程中的基础体系、实战技巧和源码分析。通过本书,读者可以快速掌握Flutter的开发技能,并通过实战学习Fl...

 

人工智能技术商业应用场景实战

段云峰 (作者)

本书详细讲述了人工智能大潮中企业如何生存和发展,帮助企业看清人工智能,抓住生产力变革机遇,进行人工智能技术布局。<br>首先,从商业应用角度介绍了人工智能的缘起...

¥79.00

精通模块化JavaScript

尼古拉斯·贝瓦夸 (作者) 回晓 杨蓉 陈立伸 朱良臻 (译者)

本书是作者Nicolás Bevacqua所写的探索JavaScript架构的系列书之一,探讨了软件复杂性的基本原理,以及如何在JavaScript中应用这些原...

 

Python数据可视化之美

张杰 (作者)

本书主要介绍如何使用Python 中的matplotlib、Seaborn、plotnine、Basemap 等包绘制专业图表。本书首先介绍Python 语言编...

¥90.30