2020年面向初学者的优秀TypeScript书籍

开发 前端
TypeScript是一个具有挑战性的编程语言来学习。随书学习TypeScript是一个旅程,希望本文推荐这些书籍对TypeScript的学习之旅提供有益帮助和指导。

TypeScript是时下最流行的前端开发语言之一,由于TypeScript往往会和其他框架生态和概念混合在一起,因此TypeScript也是当下比较难以难掌握和学习的语言之一。学习TypeScript需要理论联系实际,在学习基本概念的同时,还要注重动手实战。关于TypeScript的书不少,但是很难找到优秀的TypeScript书籍。一本优秀的TypeScript书籍需要权衡,融贯汇通前端和后端,以及现代JavaScript以及其他编程概念和重点框架。

概述

TypeScript和 JavaScrip

TypeScript是JavaScript的超集。TypeScript提供了JavaScript的所有相同功能同时,还提供了更多高级功能。TypeScript程序通过编译为JavaScript,最终通过浏览器运行。TypeScript的目的是将其编译为JavaScript。JavaScript本身就是有效的TypeScript,因为TypeScript是JavaScript的超集。可以简单地将jsx文件更改为tsx。

TypeScript由Microsoft在2012年作为一个开源项目开发。它提供了超出JavaScript的大量功能。TypeScript具有的最强大功能之一让对象类型变得更加可靠。TypeScript抛出特定的错误以帮助我们进行调试。TypeScript还可以编译到旧版本的JavaScript中,从而使许多浏览器都可以访问应用程序。

很多人对丑陋的JavaScript颇有微词,那么你可以来看看TypeScript。

学习编程

我一直在重申的一个观点是学习编程不要去看视频教程,而是从书籍入手,学练结合。当然书籍的选择是非常重要的一环,一本好的编程书不能仅仅是分享语法和理论以及操作指导,更重要是灌输各种语言独特的思维和惯用方法,这才是语言的核心和魅力。优先考虑那些真正着眼于培养作为开发人员的技能的书籍,而不仅仅是为提供词汇表和定义。

一本好的编程书籍最好与经典的工业书籍《The Pragmatic Programmer》搭配使用。

本文选择三本最佳TypeScript书籍,介绍给需要学习TypeScript的同学。

TypeScript快速入门

由Yakov Fain和Anton Moiseev撰写的《TypeScript Quickly》由Manning于2020年2月出版的,这是目前市面上TypeScript可见的组织最完善,最清晰,最实用的书之一。每章都简洁明了,知道前进的每一步。

本书旨在帮助提高网络或独立应用的开发效率。作者是从业者,是为从业者写作的人。本书概述了使用TypeScript和其他流行的库和框架构建多个应用程序的过程。本书已经假定您具备HTML,CSS和现代JavaScript方面的知识。

教授TypeScript的一个挑战是TypeScript通常不能单独运行。该语言通常与其他前端框架(如React或Angular)配对。像其他书籍一样,TypeScript也会通过深入研究框架来快速地决定要发表意见。

TypeScript快速入门共分为两大部分理论和实战。第一部分是掌握TypeScript语法,第二部分实战是以时下最流行的区块链应用为例子进行的。

第1部分:掌握TypeScript语法,从第一章到第七章。

  • 第1章:熟悉TypeScript,其中包括使用TypeScript进行编程,Typescript与JavaScript的好处,如何将TypeScript代码编译为JavaScript以及如何与Visual Studio Code编辑器一起使用。
  • 第2章:基本和自定义类型,包括使用类型声明变量并在函数声明中使用类型,使用type关键字声明类型别名,以及使用类和接口声明自定义类型。
  • 第3章:使用类和接口进行面向对象的编程,包括类继承的工作原理,为什么和何时使用抽象类,接口如何迫使类具有具有已知签名的方法而不必担心实现细节,以及如何对接口进行编程手段。
  • 第4章:使用枚举和泛型,包括使用枚举的好处,数字和字符串枚举的语法,泛型类型的用途以及如何编写支持泛型的类,接口和函数。
  • 第5章:装饰器和高级类型,包括TypeScript装饰器的用途,如何使用映射类型基于现有的类型创建新类型,条件类型如何工作以及组合映射和条件类型。
  • 第6章:工具,包括借助源映射调试TypeScript代码,linters角色,使用Webpack编译和捆绑TypeScript应用程序,使用Babel编译TypeScript应用程序以及如何使用Babel编译TypeScript并将其与Webpack捆绑在一起。
  • 第7章:在同一项目中使用TypeScript和JavaScript。

第2部分为在区块链应用中应用TypeScript,为第八到16章。

  • 第8章:开发自己的区块链应用程序,其中包括区块链应用程序的原理,哈希函数的作用,区块挖掘的作用以及开发基于区块链的简单应用程序。
  • 第9章:开发基于浏览器的区块链节点,包括为区块链创建Web客户端,创建用于散列生成的小型库,运行该区块链Web应用程序并在浏览器中调试TypeScript。
  • 第10章:使用Node.js,TypeScript和WebSockets进行客户端-服务器通信,其中包括为什么区块链可能需要服务器,最长的链规则,如何在TypeScript中创建Node.js WebSocket服务器以及对TypeScript的实际使用接口,抽象类,访问限定符,枚举和泛型。
  • 第11章:使用TypeScript开发Angular应用程序,其中包括Angular框架的快速介绍,如何生成,构建和服务以Angular和TypeScript编写的Web应用程序,以及Angular如何实现依赖项注入。
  • 第12章:在Angular中开发区块链客户端,其中包括查看Angular中的区块链Web客户端的代码以及如何运行与WebSocket服务器通信的Angular客户端。
  • 第13章:使用TypeScript开发React.js应用程序,其中包括React.js库的快速介绍,React组件如何使用道具和状态以及React组件如何相互通信。
  • 第14章:在React.js中开发一个区块链客户端,其中包括检查使用React.js编写的区块链Web客户端,React.js Web客户端如何与WebSocket服务器通信,运行在开发模式下与两个服务器一起工作的React应用,并将区块链客户端的用户界面分为多个组件并安排其通信。
  • 第15章:使用TypeScript开发Vue.js应用程序,其中包括对Vue.js框架的快速介绍,如何使用Vue CLI快速启动新项目,如何使用基于类的组件以及如何安排客户端使用Vue路由器进行导航。
  • 第16章:在Vue.js中开发区块链客户端,其中包括查看Vue.js版本的区块链Web客户端,运行一个Vue应用程序,该应用程序与两个服务器一起工作,数据流从输入交易到生成一个区块,并在区块链的客户端组件之间安排通信。

高效TypeScript

《Effective TypeScripts》,由Dan Vanderkam撰写,2020年O'Reilly发行的出版物,旨在提高TypeScript开发人员的技能。

本书的美在于其自以为是,它创建了规则和偏好来遵循本书的所有内容。这本书自称是开发者的"TypeScript第二本书",但是由于其出色的质量和对TypeScript学习者的价值,该书名列榜首。

这本书是可操作,易于应用的,可以帮助成为更好的TypeScript开发人员。尽管更多的TypeScript中级开发人员可以从本书中受益,但是初学者可以从第一次学习TypeScript的最佳建议中受益。

高效TypeScript包括以下部分:

  • 第1章:了解TypeScript,其中包括了解TypeScript与JavaScript,了解正在使用的TypeScript选项,了类型无关,对结构化类型限制使用。
  • 第2章:TypeScript的类型系统,其中包括使用编辑器询问类型系统,将类型视为值集,知道如何分辨符号的类型,更喜欢使用类型声明而不是类型声明,避免对象包装器类型,识别多余属性检查的限制,将类型应用于整个函数表达式,了解类型与继承之间的区别等等。
  • 第3章:类型干扰,包括避免将代码与可推断的类型聚类,对不同类型使用不同的变量,了解类型扩展,了解类型缩小,一次创建所有对象,与别名一致,使用异步函数而不是异步回调代码等等。
  • 第4章:类型设计,其中包括倾向于始终代表有效状态的类型,避免在文档中重复类型信息,将空值推入类型的范围等等。
  • 第5章:使用any,包括对任何类型使用尽可能狭窄的范围,更喜欢对any进行更精确的变体而不是普通的any,隐藏不安全的类型声明,等等。
  • 第6章:类型声明和@types,包括将TypeScript和@types放入devDependencies中,了解类型声明中涉及的三个版本,导出公共API中出现的所有类型,等等。
  • 第7章:编写和运行代码,包括比起TypeScript功能更喜欢ECMAScript功能,了解如何遍历对象,了解DOM层次结构等等。
  • 第8章:迁移到TypeScript,包括编写标准的JavaScript,使用@ ts-check和JSDoc尝试TypeScript,使用allowJs混合TypeScript和JavaScript等。

TypeScript编程

本书也贯穿理论联系实践的基本教学方法:让开发者深入了解TypeScript语言的工作原理(理论),并提供有关如何编写生产型TypeScript代码的大量实用建议(实践)。TypeScript是一种实用的语言,所以理论很快就可以付诸实践,而本书的大部分最终都是两者的结合。

Boris Cherny撰写的《TypeScript编程:让你的JavaScript应用程序横向扩展》是一本对初学者友好的书,该书于2019年5月出版,非常实用,用幽默风趣的对话语言形式展开,全书共324页,内容简练而干货满满。本书中译本已经上市,大家可以选择。

TypeScript编程包括以下部分:

  • 第1章:简介,其中简要说明了为什么要学习TypeScript并介绍了TypeScript类型安全性的价值。
  • 第2章:TypeScript:10英尺视图,其中包括有关编译器,类型系统,TypeScript vs JavaScript,代码编辑器设置等信息。
  • 第3章:关于类型的所有信息,其中包括"类型的ABC",列出了类型从any到的顺序void。
  • 第4章:函数,包括有关声明和调用函数,与函数有关的多态性,类型驱动的开发等信息。
  • 第5章:类和接口,其中包括有关类和继承,super,this用作返回类型的信息,接口,与类,mixins相关的多态性等信息。
  • 第6章:高级类型,包括有关类型(包括子类型和超类型),总数,高级对象类型,条件类型和"转义阴影"(例如类型声明,非空声明等)之间的关系的信息。
  • 第7章:处理错误,其中包括有关返回null,引发异常,返回异常,选项类型等的信息。
  • 第8章:异步编程,并发性和并行性,其中包括有关JavaScript事件循环,使用回调,promise,异步和等待,事件发射器,类型安全的多线程等的信息。
  • 第9章:前端和后端框架,其中包括诸如React和Angular之类的前端框架,以及使用Swagger,gRPC和GraphQL之类的API的类型安全性。本节还讨论使用TypeORM与数据库进行安全交互。
  • 第10章:命名空间模块,其中包括有关JavaScript的历史记录以及模块的信息,import以及export,命名空间,声明合并等。
  • 第11章:与JavaScript互操作,其中包括有关环境类型声明,从JavaScript迁移到TypeScript,JavaScript的类型查找,使用第三方JavaScript的信息。
  • 第12章:构建和运行TypeScript,包括有关使用布局,工件,源映射,错误监视等来构建TypeScript项目的信息。本节还讨论在服务器或浏览器上运行TypeScript以及发布到NPM。
  • 第十三章:结论。

结论

TypeScript是一个具有挑战性的编程语言来学习。随书学习TypeScript是一个旅程,希望本文推荐这些书籍对TypeScript的学习之旅提供有益帮助和指导。

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2020-07-28 01:32:52

LinuxLinux发行版操作系统

2022-07-22 13:14:57

TypeScript指南

2022-03-28 09:52:42

JavaScript语言

2020-12-14 08:36:28

Linux发行版Linux操作系统

2021-01-10 08:29:03

机器学习ML算法

2020-06-03 10:00:30

Kubernetes容器开发

2010-08-26 15:47:09

vsftpd安装

2017-12-06 09:34:49

2020-07-29 08:26:40

Webpack前端模块

2020-12-29 09:27:40

Jenkins分支管道CI

2011-09-16 09:38:19

Emacs

2022-04-24 15:21:01

MarkdownHTML

2011-04-12 10:13:24

2015-06-30 08:41:55

Node.js指南

2011-08-01 16:10:00

SQL Server

2021-12-09 05:58:51

编程语言开发代码

2020-08-25 10:14:59

JavaScript开发 技巧

2020-03-01 14:57:47

Python编程函数

2020-12-07 10:55:16

编程学习技术

2009-09-28 09:45:00

CCNA学习经验CCNA
点赞
收藏

51CTO技术栈公众号