登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書

『簡體書』Learning TypeScript中文版

書城自編碼: 2915464
分類:簡體書→大陸圖書→計算機/網絡程序設計
作者: [西班牙]Remo H. Jansen[雷莫 H. 詹森 ]
國際書號(ISBN): 9787121300479
出版社: 电子工业出版社
出版日期: 2016-10-01
版次: 1 印次: 1
頁數/字數: 344/443000
書度/開本: 16开 釘裝: 平装

售價:HK$ 133.5

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
未来特工局
《 未来特工局 》

售價:HK$ 55.8
高术莫用(十周年纪念版 逝去的武林续篇 薛颠传世之作 武学尊师李仲轩家世 凸显京津地区一支世家的百年沉浮)
《 高术莫用(十周年纪念版 逝去的武林续篇 薛颠传世之作 武学尊师李仲轩家世 凸显京津地区一支世家的百年沉浮) 》

售價:HK$ 54.9
英国简史(刘金源教授作品)
《 英国简史(刘金源教授作品) 》

售價:HK$ 98.6
便宜货:廉价商品与美国消费社会的形成
《 便宜货:廉价商品与美国消费社会的形成 》

售價:HK$ 77.3
读书是一辈子的事(2024年新版)
《 读书是一辈子的事(2024年新版) 》

售價:HK$ 77.3
乐道文库·什么是秦汉史
《 乐道文库·什么是秦汉史 》

售價:HK$ 80.6
汉娜·阿伦特与以赛亚·伯林 : 自由、政治与人性
《 汉娜·阿伦特与以赛亚·伯林 : 自由、政治与人性 》

售價:HK$ 109.8
女性与疯狂(女性主义里程碑式著作,全球售出300万册)
《 女性与疯狂(女性主义里程碑式著作,全球售出300万册) 》

售價:HK$ 109.8

 

建議一齊購買:

+

HK$ 79.8
《编程风格:好代码的逻辑》
+

HK$ 143.6
《深入理解ES6》
+

HK$ 100.1
《深入浅出React和Redux》
+

HK$ 158.1
《Angular权威教程》
+

HK$ 84.1
《React开发实战》
編輯推薦:
TypeScript是一个开源的、跨平台且带有类型系统的JavaScript超集,它可以编译为纯JavaScript,然后运行在任意的浏览器和其他环境中。它使开发者可以使用一些未来JavaScript标准(ECMAScript 6和7)中的特性。TypeScript为JavaScript添加了可选的静态类型、类和模块,让大型JavaScript应用可以使用更好的工具并拥有更清晰的结构。
本书通过大量示例,一步一步让读者由浅至深地了解TypeScript。首先介绍了TypeScript的基本概念,接着介绍了像Gulp这样的自动化工具,以及对函数、泛型、回调和promise的详细解释。还介绍了TypeScript中的面向对象特性和内存管理能力。*后,带领读者使用本书讲解的概念编写了一个单页面应用。
你将从本书学到:
学习TypeScript语言的关键特性和运行时
开发模块化、可伸缩、可维护以及可适配的Web应用
编写符合SOLID原则的面向对象的代码
使用像Gulp和Karma这样的自动化工具来节省时间
使用Mocha、Chai和SinonJS这样的测试工具来开发健壮的应用
內容簡介:
本书首先介绍了TypeScript 的基本语法和基本的自动化工作流配置方法,然后从面向对象入手,着重介绍了面向对象的概念和它的一些最佳实践,并结合例子讲解了如何基于TypeScript 的类型系统应用这些最佳实践。随后剖析了TypeScript 在编译后的运行时行为,并从性能与测试的角度讲解了如何编写健壮的TypeScript 代码,所以书中还包括了性能分析与测试相关的内容。最后介绍了如何使用TypeScript 结合面向对象、MVC 等概念,结合本书前面提到的自动化的工作流、面向对象最佳实践、性能优化和测试等内容实现一个单页应用(SPA)框架,并用这个框架构建了一个单页应用。
關於作者:
Remo H. Jansen 是一位前端工程师、开源项目贡献者、企业家、科技爱好者、游戏爱好者和互联网爱好者。
他来自西班牙的塞维利亚,但目前居住于爱尔兰的都柏林,并在那里做着一份金融服务行业的全职工作。Remo 有着多年的大型JavaScript 应用开发经验,从航班预定系统到投资组合管理解决方案。
Remo 在TypeScript 社区中十分活跃。他是都柏林TypeScript 交流会的组织者,并且是InversifyJS(一个TypeScript 应用的控制反转容器)和AtSpy(一个TypeScript 应用的测试框架)的作者。在他的个人博客(http:blog.wolksoftware.com)中,他写了许多关于TypeScript 和其他Web 技术的博客。
Remo 也是由Packt Publishing 出版,Nathan Rozentals 撰写的Mastering TypeScript 一书的技术审校者。
本书三位译者正在使用本书中介绍的技术做项目,精通理论知识,并具有丰富的实践经验,因此对书中介绍的内容十分熟悉,能深刻领会原著作者的意思,相信能为广大读者奉献一本质量上乘的图书。
目錄
目录
前言 .................................... XVIII
1 TypeScript简介 .................. 1
TypeScript的架构 ........................... 1
设计目标 ................................. 1
TypeScript组件 ...................... 3
TypeScript语言特性 ....................... 4
类型 ......................................... 6
变量、基本类型和运算符 ..... 7
流程控制语句 ....................... 14
函数 ....................................... 18
类 ........................................... 20
接口 ....................................... 22
命名空间 ............................... 22
综合运用 ....................................... 23
小结 ... 25
2 自动化工作流程 ................ 26
一个现代化的开发工作流程 ....... 26
准备工作 ....................................... 27
Node.js ................................... 27
Atom ...................................... 27
Git和 GitHub ........................ 30
版本控制工具 ............................... 30
包管理工具 ................................... 34
npm ........................................ 35
Bower..................................... 38
tsd .......................................... 38
自动化任务工具 ........................... 39
检查 TypeScript代码的质量41
编译 TypeScript代码 ............ 42
优化 TypeScript应用 ............ 44
管理 Gulp任务的执行顺序 . 48
自动化测试工具 ........................... 50
使跨设备测试同步 ....................... 52
持续集成工具 ............................... 55
脚手架工具 ................................... 56
小结 ... 58
3 使用函数 .......................... 59
在 TypeScript中使用函数 ............ 60
函数声明和函数表达式 ....... 60
函数类型 ............................... 61
有可选参数的函数 ............... 62
有默认参数的函数 ............... 63
有剩余参数的函数 ............... 64
函数重载 ............................... 66
特定重载签名 ....................... 67
函数作用域 ........................... 68
立即调用函数 ....................... 71
范型 ....................................... 74
tag函数和标签模板 ............. 77
TypeScript中的异步编程 ............. 78
回调和高阶函数 ................... 79
箭头函数 ............................... 79
回调地狱 ............................... 81
promise .................................. 86
生成器 ................................... 91
异步函数async和 await93
小结 ... 93
4 TypeScript中的面向对象编程 ...................................... 94
SOLID 原则 ................................. 95
类 ....... 95
接口 ... 99
关联、聚合和组合 ..................... 100
关联 ..................................... 100
聚合 ..................................... 100
组合 ..................................... 100
继承 . 101
混合 ..................................... 104
范型类 ......................................... 109
范型约束 ..................................... 113
在范型约束中使用多重类型 ......................................... 117
范型中的 new操作 ........... 118
遵循 SOLID原则 ....................... 118
里氏替换原则 ..................... 118
接口隔离原则 ..................... 120
依赖反转原则 ..................... 122
命名空间 ..................................... 122
模块 . 124
ES6模块运行时与程序设计时 .............................. 126
外部模块语法仅在程序设计阶段可用 .................. 127
AMD 模块定义语法仅在运行时使用 .................. 128
CommonJS 模块定义语法仅在运行时使用 ......... 129
UMD模块定义语法仅在运行时使用 ................... 130
SystemJS模块定义 仅在运行时使用 ..................... 131
循环依赖 ..................................... 131
小结 . 133
5 运行时 .............................134
环境 . 135
运行时的一些概念 ..................... 135
帧 ......................................... 136
栈 ......................................... 137
队列 ..................................... 137
堆 ......................................... 137
事件循环 ............................. 137
this操作符 .................................. 138
全局上下文中的 this操作符 .......................................... 139
函数上下文中的 this操作符 .......................................... 139
call、apply和 bind方法 ..... 140
原型 . 143
实例属性与类属性的对比 . 144
基于原型的继承 ................. 147
原型链 ................................. 151
访问对象的原型 ................. 152
new操作符 .......................... 153
闭包 . 153
闭包和静态变量 ................. 155
闭包和私有成员 ................. 157
小结 . 159
6 应用性能 .........................160
准备工作 ..................................... 160
性能和资源 ................................. 161
性能指标 ..................................... 162
可用性 ................................. 162
响应时间 ............................. 162
处理速度 ............................. 162
延迟 ..................................... 162
带宽 ..................................... 163
可伸缩性 ............................. 163
性能分析 ..................................... 163
网络性能分析 ..................... 163
网络性能与用户体验 ......... 168
GPU性能分析 .................... 172
CPU性能分析 .................... 174
内存性能分析 ..................... 176
垃圾回收器 ......................... 178
性能自动化 ................................. 178
性能优化自动化 ................. 178
性能监测自动化 ................. 179
性能测试自动化 ................. 180
错误处理 ..................................... 180
Error类 ................................ 181
trycatch 语句和 throw 语句 ..................................... 182
小结 . 182
7 应用测试 .........................183
软件测试术语表 ......................... 183
断言 ..................................... 184
测试规范 ............................. 185
测试用例 ............................. 185
测试套件 ............................. 185
测试监视 ............................. 185
替身 ..................................... 185
测试桩 ................................. 185
模拟 ..................................... 185
测试覆盖率 ......................... 186
必要的准备 ................................. 186
Gulp ..................................... 187
Karma .................................. 187
Istanbul ................................ 187
Mocha .................................. 187
Chai ...................................... 188
Sinon.JS ............................... 188
类型定义 ............................. 188
PhantomJS ........................... 189
Selenium和 Nightwatch.js 189
测试计划和方法 ......................... 190
测试驱动开发 ..................... 190
行为驱动测试 ..................... 191
测试计划和测试类型 ......... 191
建立测试基础结构 ..................... 192
使用 Gulp构建这个程序 ... 193
使用 Karma运行单元测试197
使用 Selenium和 Nightwatch.js运行 E2E测试 ........... 200
使用 Mocha和 Chai创建测试断言、规范和套件 ............... 203
测试异步代码 ..................... 207
断言异常 ............................. 208
Mocha和 Chai的 TDD与 BDD对比 ........................... 209
使用 Sinon.JS编写测试监视和测试桩 ................................. 209
测试监视 ............................. 213
测试桩 ................................. 215
使用 Nightwatch.js创建端对端测试 ..................................... 216
生成测试覆盖率报告 ................. 217
小结 . 220
8 装饰器 .............................221
条件准备 ..................................... 221
注解和装饰器 ............................. 222
类装饰器 ...........
內容試閱
译者序
在 JavaScript社区的荒蛮时代里,构建大型 Web应用是一件吃力且烦琐的事情。但迫于业务发展的需要,业界一直在探索如何像成熟的工业化的语言那样开发和构建大型的应用。
微软在 2009 年发布了 TypeScript的第一个版本,它为 JavaScript 带来了类型系统与模块系统(现在已经废弃并鼓励使用 ES6模块)。而自从 TypeScript问世,JavaScript 社区就没有停止过对它的议论,有人认为类型系统给 JavaScript 带来的静态检查能力更有利于构建大型应用,而另一些人则认为类型系统会使 JavaScript 丧失其先天的灵活性和动态性,不利于提高开发效率。还有一些人担心 TypeScript为 JavaScript 带来了太多非标准的特性,很难保证 TypeScript在未来与 JavaScript在语言层面上保持高度统一。
译者在翻译本书前,刚刚经历了将一个 CoffeeScript应用全面使用 TypeScript重构。 CoffeeScript 从某种程度上来看完全是 TypeScript的对立面,它甚至比 JavaScript 更具动态性与灵活性。而在译者重构的这个项目中,代码量高达上万行,且包含数十个模块,之所以选择使用 TypeScript重构它,是因为日益增长的代码量与模块数使得团队协同开发的难度越来越大。
也正是因为这次重构,使译者能深入了解 TypeScript。它的类型系统异常强大,可以大大降低团队中成员的沟通成本。以往,团队中的成员需要调用另一个成员写的模块时,必须要仔细研究这个模块中各个 API 的参数、参数类型和返回值。然而因为项目中通常缺乏文档与注释(这是另外的讨论点),所以通常在使用其他人开发的模块时会占用程序员大量的时间去阅读和理解其他人的代码。而 TypeScript的类型系统无疑是给了我们一个快捷的文档,使得我们能更好更快地使用别人的模块。即使是在拥有良好的注释以及文档的模块中,TypeScript服务提供的 Intellisense 功能也能让开发人员如虎添翼,再也不用担心忘记参数类型或忘记方法名。
而另一方面, TypeScript过强的约束也在开发时给我们带来了很多额外的困扰。比如在开启了--noImplicitReturns参数后,一些设计成无返回值的代码将会导致编译失败,比如:
getOne_id: string: string {
const result = cacheService.exist_id
if result {
return cacheService.findById_id
}
}
由于这段代码只有一个分支有返回值,所以它将导致编译失败,但我们正是期待代码这样运行。
同时,我们也接触到了一些 TypeScript 的私有功能,比如 enum(枚举)与 reflectMetaData(元数据反射)。出于对使用非标准特性的风险的考量,我们并没有在项目中使用这些特性。
除了强大的类型系统带来的可靠的静态检查以外,我们还惊喜地发现了一个能大大增加项目可维护性与健壮性的实践,那就是依靠 TypeScript的类与接口将面向对象的 SOLID原则应用到项目中,这无疑是搭了类似 Java 与 C# 等面向对象语言的顺风车,它能让我们更容易地写出高内聚低耦合的代码。
所以在面对社区各种对 TypeScript褒贬不一的评价时,希望读者能理性地看待这些声音,并且能够在深思熟虑之后进一步接触 TypeScript,深入了解它的优点与缺点,最终为自己的项目选择合适的工具。

关于作者
Remo H. Jansen是一位前端工程师、开源项目贡献者、企业家、科技爱好者、游戏爱好者和互联网爱好者。
他来自西班牙的塞维利亚,但目前居住于爱尔兰的都柏林,并在那里做着一份金融服务行业的全职工作。Remo有着多年的大型 JavaScript应用开发经验,从航班预定系统到投资组合管理解决方案。
Remo在 TypeScript社区中十分活跃。他是都柏林 TypeScript交流会的组织者,并且是 InversifyJS(一个 TypeScript应用的控制反转容器)和 AtSpy(一个 TypeScript应用的测试框架)的作者。在他的个人博客(http:blog.wolksoftware.com)中,他写了许多关于 TypeScript和其他 Web技术的博客。
Remo也是由 Packt Publishing出版,Nathan Rozentals撰写的 Mastering TypeScript一书的技术审校者。
若想要与他取得联系,可以访问 http:www.remojansen.com。

致谢
这是我出版的第一本书。在此之前,我经历了相当漫长的学习之路,并且从许多值得感谢的人那里,学到了许多知识。我首先要感谢地处特里亚纳圣彼得慈幼会(位于西班牙的塞维利亚)的计算机科学学
院中的老师们,因为他们让我体会到了教育的价值。感谢 Packt Publishing团队的成员们的支持和努力工作,与你们的合作十分愉快。感谢本书的所有技术审校者,他们无价的反馈和努力工作显著地提升了本书内容的质
量。感谢我的同事和室友,Sergio Pacheco Jimenez 和 Adolfo Blanco Diez,因为我常在半夜与前者进行漫长的技术交流,后者为我提供了大量咖啡饮料的支持。感谢我的女朋友,Lorraine,我为你无条件的支持和耐心深感荣幸。你就是世界上最好的女朋友,并且还在不断变得更好。
最后,感谢我的家人,感谢你们相信我,为我提供指导,成为我最好的倾听者,支持我的工作,原谅我所犯的错误,以及其他一切你们教会我的东西。感谢我们在一起所经历的开心与伤心的时光。能够成为你们的孙子、儿子和兄弟,让我十分骄傲。

关于审校者
Liviu Ignat是一位全栈工程师、架构师、科技极客和企业家,从 2004年以来开始编写商业软件。一开始使用的是 VB6,接着开始使用 .NET和 Java,后来转向了 Web前端开发。他对函数式语言十分感兴趣,如 F#、Scala、Swift、JavaScript等。在他的一些最新的服务端 Node.js项目和大多数使用流行前端框架的项目中已经使用上了 TypeScript。
目前,他正致力于许多项目,大多数项目是 http:giftdoodle.com中的,他是这个公司的 CTO,这家公司中大多数 JavaScript项目都使用 TypeScript编写。在他的工作经历中,他使用.NET编写过分布式后端服务,也编写过复杂的单页 Web应用。最近他正致力于使用 Node.js和 Docker编写微服务,编写单页 Web应用,以编写 Android和 iOS原生应用。
当 Liviu不写代码时,他喜欢在冬天滑雪,在夏天坐帆船去国外,去世界的其他地方旅行。你可以在 http:www.ignat.email联系到 Liviu。
Jakub Jedryszek目前是微软的一位软件工程师。在审校本书时,他工作于 Azure Portal,这是世界上使用 TypeScript编写的最复杂的单页 Web应用。他也是 .NET开发者的 dotNetConfPLonline会议的共同发起人之一。他的博客是 http:jj09.net。
Andrew Leith Macrae最初在 Apple 的产品上开始了他的编程生涯。多年以来,他使用过 Hypercard、Director、Flash和最近的 Adobe AIR for mobile 开发交互式应用。并且在开发过程中,他也会用到 HTML。他目前是多伦多 Rogers Communications 公司的高级前端工程师,正在使用 AngularJS和 SASS进行敏捷开发。
他坚信 TypeScript是 JavaScript 的未来,TypeScript带来了强类型面向对象语言中的结构化和规则,为开发大规模 Web应用的代码编写提供了语义上的便利。
你可以在 http:adventmedia.net联系到 Andrew。
Brandon Mills的编程生涯已经有十多年了,他就职过只有两个人的初创公司,也在微软就职过。他在微软参与了 Visual Studio 2013、Azure Tools 和预装于 Windows 10的 Edge浏览器项目。他也是 ESLint 项目的核心开发团队成员之一,这是一个开源可配置的 JavaScript和 JSX的语法检查工具。他目前在 Node.js平台上使用 JavaScript或 TypeScript编写应用和服务。他的 GitHub是 https:github.combtmills。
感谢 Scott 的激励和给予我的灵感,感谢 Linda给予我无条件的爱,感谢 Abby给予我的耐心,以及感谢 Ashlynn 对我的支持。
Ivo Gabe de Wolff是一位 ivogabe(创始于 2012年)名下的自由职业开发者,他正在乌得勒支大学学习数学和计算机科学。当他只有 11岁时,便开始使用 Game Maker编写游戏程序。在学了诸如 C# 和 JavaScript等诸多编程语言后,他在现在的大多数项目中使用 TypeScript。在过去的几年里,他在许多不同的环境中使用过 TypeScript,如移动端应用。目前他主要致力于 Node.js 程序的开发。
另外,他也是许多开源项目的作者,包括 gulp-typescript。你可以在 https: github.comivogabe中找到他的项目。如果你想阅读更多有关 TypeScript、JavaScr

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.