2020年面向初學者的優(yōu)秀TypeScript書籍
TypeScript是時下最流行的前端開發(fā)語言之一,由于TypeScript往往會和其他框架生態(tài)和概念混合在一起,因此TypeScript也是當下比較難以難掌握和學習的語言之一。學習TypeScript需要理論聯(lián)系實際,在學習基本概念的同時,還要注重動手實戰(zhàn)。關(guān)于TypeScript的書不少,但是很難找到優(yōu)秀的TypeScript書籍。一本優(yōu)秀的TypeScript書籍需要權(quán)衡,融貫匯通前端和后端,以及現(xiàn)代JavaScript以及其他編程概念和重點框架。
概述
TypeScript和 JavaScrip
TypeScript是JavaScript的超集。TypeScript提供了JavaScript的所有相同功能同時,還提供了更多高級功能。TypeScript程序通過編譯為JavaScript,最終通過瀏覽器運行。TypeScript的目的是將其編譯為JavaScript。JavaScript本身就是有效的TypeScript,因為TypeScript是JavaScript的超集。可以簡單地將jsx文件更改為tsx。
TypeScript由Microsoft在2012年作為一個開源項目開發(fā)。它提供了超出JavaScript的大量功能。TypeScript具有的最強大功能之一讓對象類型變得更加可靠。TypeScript拋出特定的錯誤以幫助我們進行調(diào)試。TypeScript還可以編譯到舊版本的JavaScript中,從而使許多瀏覽器都可以訪問應用程序。
很多人對丑陋的JavaScript頗有微詞,那么你可以來看看TypeScript。
學習編程
我一直在重申的一個觀點是學習編程不要去看視頻教程,而是從書籍入手,學練結(jié)合。當然書籍的選擇是非常重要的一環(huán),一本好的編程書不能僅僅是分享語法和理論以及操作指導,更重要是灌輸各種語言獨特的思維和慣用方法,這才是語言的核心和魅力。優(yōu)先考慮那些真正著眼于培養(yǎng)作為開發(fā)人員的技能的書籍,而不僅僅是為提供詞匯表和定義。
一本好的編程書籍最好與經(jīng)典的工業(yè)書籍《The Pragmatic Programmer》搭配使用。
本文選擇三本最佳TypeScript書籍,介紹給需要學習TypeScript的同學。
TypeScript快速入門
由Yakov Fain和Anton Moiseev撰寫的《TypeScript Quickly》由Manning于2020年2月出版的,這是目前市面上TypeScript可見的組織最完善,最清晰,最實用的書之一。每章都簡潔明了,知道前進的每一步。
本書旨在幫助提高網(wǎng)絡或獨立應用的開發(fā)效率。作者是從業(yè)者,是為從業(yè)者寫作的人。本書概述了使用TypeScript和其他流行的庫和框架構(gòu)建多個應用程序的過程。本書已經(jīng)假定您具備HTML,CSS和現(xiàn)代JavaScript方面的知識。
教授TypeScript的一個挑戰(zhàn)是TypeScript通常不能單獨運行。該語言通常與其他前端框架(如React或Angular)配對。像其他書籍一樣,TypeScript也會通過深入研究框架來快速地決定要發(fā)表意見。
TypeScript快速入門共分為兩大部分理論和實戰(zhàn)。第一部分是掌握TypeScript語法,第二部分實戰(zhàn)是以時下最流行的區(qū)塊鏈應用為例子進行的。
第1部分:掌握TypeScript語法,從第一章到第七章。
- 第1章:熟悉TypeScript,其中包括使用TypeScript進行編程,Typescript與JavaScript的好處,如何將TypeScript代碼編譯為JavaScript以及如何與Visual Studio Code編輯器一起使用。
- 第2章:基本和自定義類型,包括使用類型聲明變量并在函數(shù)聲明中使用類型,使用type關(guān)鍵字聲明類型別名,以及使用類和接口聲明自定義類型。
- 第3章:使用類和接口進行面向?qū)ο蟮木幊?,包括類繼承的工作原理,為什么和何時使用抽象類,接口如何迫使類具有具有已知簽名的方法而不必擔心實現(xiàn)細節(jié),以及如何對接口進行編程手段。
- 第4章:使用枚舉和泛型,包括使用枚舉的好處,數(shù)字和字符串枚舉的語法,泛型類型的用途以及如何編寫支持泛型的類,接口和函數(shù)。
- 第5章:裝飾器和高級類型,包括TypeScript裝飾器的用途,如何使用映射類型基于現(xiàn)有的類型創(chuàng)建新類型,條件類型如何工作以及組合映射和條件類型。
- 第6章:工具,包括借助源映射調(diào)試TypeScript代碼,linters角色,使用Webpack編譯和捆綁TypeScript應用程序,使用Babel編譯TypeScript應用程序以及如何使用Babel編譯TypeScript并將其與Webpack捆綁在一起。
- 第7章:在同一項目中使用TypeScript和JavaScript。
第2部分為在區(qū)塊鏈應用中應用TypeScript,為第八到16章。
- 第8章:開發(fā)自己的區(qū)塊鏈應用程序,其中包括區(qū)塊鏈應用程序的原理,哈希函數(shù)的作用,區(qū)塊挖掘的作用以及開發(fā)基于區(qū)塊鏈的簡單應用程序。
- 第9章:開發(fā)基于瀏覽器的區(qū)塊鏈節(jié)點,包括為區(qū)塊鏈創(chuàng)建Web客戶端,創(chuàng)建用于散列生成的小型庫,運行該區(qū)塊鏈Web應用程序并在瀏覽器中調(diào)試TypeScript。
- 第10章:使用Node.js,TypeScript和WebSockets進行客戶端-服務器通信,其中包括為什么區(qū)塊鏈可能需要服務器,最長的鏈規(guī)則,如何在TypeScript中創(chuàng)建Node.js WebSocket服務器以及對TypeScript的實際使用接口,抽象類,訪問限定符,枚舉和泛型。
- 第11章:使用TypeScript開發(fā)Angular應用程序,其中包括Angular框架的快速介紹,如何生成,構(gòu)建和服務以Angular和TypeScript編寫的Web應用程序,以及Angular如何實現(xiàn)依賴項注入。
- 第12章:在Angular中開發(fā)區(qū)塊鏈客戶端,其中包括查看Angular中的區(qū)塊鏈Web客戶端的代碼以及如何運行與WebSocket服務器通信的Angular客戶端。
- 第13章:使用TypeScript開發(fā)React.js應用程序,其中包括React.js庫的快速介紹,React組件如何使用道具和狀態(tài)以及React組件如何相互通信。
- 第14章:在React.js中開發(fā)一個區(qū)塊鏈客戶端,其中包括檢查使用React.js編寫的區(qū)塊鏈Web客戶端,React.js Web客戶端如何與WebSocket服務器通信,運行在開發(fā)模式下與兩個服務器一起工作的React應用,并將區(qū)塊鏈客戶端的用戶界面分為多個組件并安排其通信。
- 第15章:使用TypeScript開發(fā)Vue.js應用程序,其中包括對Vue.js框架的快速介紹,如何使用Vue CLI快速啟動新項目,如何使用基于類的組件以及如何安排客戶端使用Vue路由器進行導航。
- 第16章:在Vue.js中開發(fā)區(qū)塊鏈客戶端,其中包括查看Vue.js版本的區(qū)塊鏈Web客戶端,運行一個Vue應用程序,該應用程序與兩個服務器一起工作,數(shù)據(jù)流從輸入交易到生成一個區(qū)塊,并在區(qū)塊鏈的客戶端組件之間安排通信。
高效TypeScript
《Effective TypeScripts》,由Dan Vanderkam撰寫,2020年O'Reilly發(fā)行的出版物,旨在提高TypeScript開發(fā)人員的技能。
本書的美在于其自以為是,它創(chuàng)建了規(guī)則和偏好來遵循本書的所有內(nèi)容。這本書自稱是開發(fā)者的"TypeScript第二本書",但是由于其出色的質(zhì)量和對TypeScript學習者的價值,該書名列榜首。
這本書是可操作,易于應用的,可以幫助成為更好的TypeScript開發(fā)人員。盡管更多的TypeScript中級開發(fā)人員可以從本書中受益,但是初學者可以從第一次學習TypeScript的最佳建議中受益。
高效TypeScript包括以下部分:
- 第1章:了解TypeScript,其中包括了解TypeScript與JavaScript,了解正在使用的TypeScript選項,了類型無關(guān),對結(jié)構(gòu)化類型限制使用。
- 第2章:TypeScript的類型系統(tǒng),其中包括使用編輯器詢問類型系統(tǒng),將類型視為值集,知道如何分辨符號的類型,更喜歡使用類型聲明而不是類型聲明,避免對象包裝器類型,識別多余屬性檢查的限制,將類型應用于整個函數(shù)表達式,了解類型與繼承之間的區(qū)別等等。
- 第3章:類型干擾,包括避免將代碼與可推斷的類型聚類,對不同類型使用不同的變量,了解類型擴展,了解類型縮小,一次創(chuàng)建所有對象,與別名一致,使用異步函數(shù)而不是異步回調(diào)代碼等等。
- 第4章:類型設計,其中包括傾向于始終代表有效狀態(tài)的類型,避免在文檔中重復類型信息,將空值推入類型的范圍等等。
- 第5章:使用any,包括對任何類型使用盡可能狹窄的范圍,更喜歡對any進行更精確的變體而不是普通的any,隱藏不安全的類型聲明,等等。
- 第6章:類型聲明和@types,包括將TypeScript和@types放入devDependencies中,了解類型聲明中涉及的三個版本,導出公共API中出現(xiàn)的所有類型,等等。
- 第7章:編寫和運行代碼,包括比起TypeScript功能更喜歡ECMAScript功能,了解如何遍歷對象,了解DOM層次結(jié)構(gòu)等等。
- 第8章:遷移到TypeScript,包括編寫標準的JavaScript,使用@ ts-check和JSDoc嘗試TypeScript,使用allowJs混合TypeScript和JavaScript等。
TypeScript編程
本書也貫穿理論聯(lián)系實踐的基本教學方法:讓開發(fā)者深入了解TypeScript語言的工作原理(理論),并提供有關(guān)如何編寫生產(chǎn)型TypeScript代碼的大量實用建議(實踐)。TypeScript是一種實用的語言,所以理論很快就可以付諸實踐,而本書的大部分最終都是兩者的結(jié)合。
Boris Cherny撰寫的《TypeScript編程:讓你的JavaScript應用程序橫向擴展》是一本對初學者友好的書,該書于2019年5月出版,非常實用,用幽默風趣的對話語言形式展開,全書共324頁,內(nèi)容簡練而干貨滿滿。本書中譯本已經(jīng)上市,大家可以選擇。
TypeScript編程包括以下部分:
- 第1章:簡介,其中簡要說明了為什么要學習TypeScript并介紹了TypeScript類型安全性的價值。
- 第2章:TypeScript:10英尺視圖,其中包括有關(guān)編譯器,類型系統(tǒng),TypeScript vs JavaScript,代碼編輯器設置等信息。
- 第3章:關(guān)于類型的所有信息,其中包括"類型的ABC",列出了類型從any到的順序void。
- 第4章:函數(shù),包括有關(guān)聲明和調(diào)用函數(shù),與函數(shù)有關(guān)的多態(tài)性,類型驅(qū)動的開發(fā)等信息。
- 第5章:類和接口,其中包括有關(guān)類和繼承,super,this用作返回類型的信息,接口,與類,mixins相關(guān)的多態(tài)性等信息。
- 第6章:高級類型,包括有關(guān)類型(包括子類型和超類型),總數(shù),高級對象類型,條件類型和"轉(zhuǎn)義陰影"(例如類型聲明,非空聲明等)之間的關(guān)系的信息。
- 第7章:處理錯誤,其中包括有關(guān)返回null,引發(fā)異常,返回異常,選項類型等的信息。
- 第8章:異步編程,并發(fā)性和并行性,其中包括有關(guān)JavaScript事件循環(huán),使用回調(diào),promise,異步和等待,事件發(fā)射器,類型安全的多線程等的信息。
- 第9章:前端和后端框架,其中包括諸如React和Angular之類的前端框架,以及使用Swagger,gRPC和GraphQL之類的API的類型安全性。本節(jié)還討論使用TypeORM與數(shù)據(jù)庫進行安全交互。
- 第10章:命名空間模塊,其中包括有關(guān)JavaScript的歷史記錄以及模塊的信息,import以及export,命名空間,聲明合并等。
- 第11章:與JavaScript互操作,其中包括有關(guān)環(huán)境類型聲明,從JavaScript遷移到TypeScript,JavaScript的類型查找,使用第三方JavaScript的信息。
- 第12章:構(gòu)建和運行TypeScript,包括有關(guān)使用布局,工件,源映射,錯誤監(jiān)視等來構(gòu)建TypeScript項目的信息。本節(jié)還討論在服務器或瀏覽器上運行TypeScript以及發(fā)布到NPM。
- 第十三章:結(jié)論。
結(jié)論
TypeScript是一個具有挑戰(zhàn)性的編程語言來學習。隨書學習TypeScript是一個旅程,希望本文推薦這些書籍對TypeScript的學習之旅提供有益幫助和指導。