TypeScript 項目開發實戰

TypeScript 項目開發實戰

作者: Peter O'Hanlon 趙利通譯
出版社: 機械工業
出版在: 2020-08-04
ISBN-13: 9787111660262
ISBN-10: 7111660269
裝訂格式: 平裝
總頁數: 305 頁




內容描述


本書是一本TypeScript進階實踐指南,通過9個實用項目,
詳細講解如何使用TypeScript 3.0和不同的JavaScript框架開發高質量的應用程序。
書中不僅介紹TypeScript的核心概念與技術,還涵蓋Angular和React的一些新功能,
以及GraphQL、微服務和機器學習等相關的新技術。
全書共10章:
第1章介紹你之前可能沒有接觸過的TypeScript功能,
第2章將編寫第一個實用的項目——一個簡單的markdown編輯器,
第3章將使用流行的React庫構建一個聯繫人管理器,
第4章介紹MEAN棧,
第5章介紹如何使用GraphQL和Apollo創建Angular待辦事項應用程序,
第6章介紹如何使用Socket.IO構建一個聊天室應用程序,
第7章介紹如何使用必應地圖和Firebase創建基於雲的Angular地圖應用程序,
第8章介紹如何使用一個等效的基於React的棧,
第9章介紹如何使用TensorFlow.js在Web瀏覽器中託管機器學習,
第10章介紹如何使用ASP.NET Core和免費的Discogs音樂API來編寫一個音樂庫應用程序。
【通過閱讀本書,你將學到】:
●使用TypeScript和常用模式編寫代碼。
●在TypeScript中使用流行的框架和庫。
●使用TypeScript來利用服務器和客戶端的功能。
●應用令人興奮的新範式,如GraphQL和TensorFlow。
●使用流行的、基於雲的身份驗證服務。
●結合TypeScript和C#來創建ASP.NET Core應用程序。


目錄大綱


前言
審校者簡介
第1章TypeScript的高級特性1
1.1技術需求2
1.2使用tsconfig構建面向未來的TypeScript 2
1.3 TypeScript高級特性簡介3
1.3.1借助聯合類型使用不同的類型3
1.3.2使用交叉類型組合類型5
1.3.3使用類型別名簡化類型聲明7
1.3.4使用對象展開賦值屬性8
1.3.5使用REST屬性解構對象10
1.3.6使用REST處理可變數量的參數11
1.3.7使用裝飾器進行AOP 13
1.3.8使用混入(mixin)組成類型17
1.3.9使用泛型,將相同的代碼用於不同的類型20
1.3.10使用映射來映射值24
1.3.11使用Promise和async/await創建異步代碼25
1.3.12使用Bootstrap創建UI27
1.4小結30
習題31
第2章使用TypeScript創建一個markdown編輯器32
2.1技術需求33
2.2項目概述33
2.3開始創建一個簡單的HTML項目34
2.4編寫一個簡單的markdown解析器34
2.4.1創建Bootstrap UI 35
2.4.2將markdown標籤類型映射到HTML標籤類型38
2.4.3使用MarkdownDocument類表示轉換後的markdown標記41
2.4.4使用訪問者更新markdown文檔42
2.4.5通過使用責任鏈模式決定應用哪個標籤44
2.4 .6綜合運用48
2.5小結49
延伸閱讀50
第3章React Bootstrap聯繫人管理器51
3.1技術需求51
3.2項目概述52
3.3開始使用組件52
3.4創建一個支持TypeScript的React Bootstrap項目53
3.5創建模擬佈局53
3.5 .1創建應用程序54
3.5.2使用tslint設置代碼的格式55
3.5.3添加Bootstrap支持56
3.6在React中使用tsx組件57
3.6.1 React如何使用虛擬DOM來提高響應性57
3.6.2 React應用程序的組件58
3.7顯示個人信息界面59
3.8驗證用戶輸入及驗證器的使用65
3.8.1驗證地址66
3.8.2驗證姓名68
3.8.3驗證電話號碼68
3.9在React組件中應用驗證70
3.10創建數據並把數據發送給IndexedDB數據庫71
3.10.1在狀態中添加對記錄狀態的支持74
3.10.2從PersonalDetails訪問數據庫79
3.11增強代碼83
3.12小結83
習題84
延伸閱讀84
第4章MEAN棧— —構建一個相冊85
4.1技術需求86
4.2 MEAN棧86
4.3項目概述87
4.4準備工作88
4.5使用MEAN棧創建Angular相冊88
4.5.1 Angular簡介88
4.5.2創建應用程序90
4.5.3使用Angular Material創建UI 91
4.5.4使用Material添加導航92
4.5.5創建第一個組件——FileUpload組件94
4.5.6在應用程序中引入對Express的支持100
4.5.7提供路由支持102
4.5.8顯示圖片107
4.5. 9顯示對話框114
4.6小結115
習題116
延伸閱讀116
第5章使用GraphQL和Apollo創建Angular待辦事項應用程序117
5.1技術需求118
5.2理解GraphQL與REST的關係118
5.3項目概述119
5.4準備工作120
5.5使用GraphQL和Angular創建待辦事項應用程序120
5.5.1創建應用程序121
5.5.2創建GraphQL架構126
5.5.3創建GraphQL解析器129
5.5.4使用Apollo Server作為服務器133
5.5.5 GraphQL Angular客戶端135
5.5.6向頁面組件添加內容139
5.6小結149
習題150
延伸閱讀150
第6章使用Socket.IO構建一個聊天室應用程序151
6.1技術需求152
6.2使用Socket.IO建立客戶端/服務器之間的長時間通信152
6.3項目概述152
6.4開始使用Socket.IO和Angular 153
6.5使用Socket.IO、Angular和Auth0創建一個聊天室應用程序155
6.5. 1創建應用程序156
6.5.2為服務器添加Socket.IO支持158
6.5.3創建聊天室客戶端160
6.5.4使用Auth0授權和驗證用戶162
6.5.5使用安全路由165
6.5.6添加客戶端聊天功能166
6.5.7使用GeneralchatComponent完成我們的應用程序170
6.6小結172
習題172
延伸閱讀172
第7章使用必應地圖和Firebase創建基於雲的Angular地圖應用程序173
7.1技術需求174
7.2現代應用程序及使用雲服務的趨勢174
7.3項目概述174
7.4在Angular中使用必應地圖175
7.4.1註冊必應地圖176
7.4.2註冊Firebase 178
7.5使用Angular和Firebase創建必應地圖應用程序181
7.5.1添加地圖組件181
7.5.2興趣點182
7.5.3表示地圖圖釘184
7.5.4使用地圖搜索做一些有趣的操作186
7.5.5將必應地圖添加到屏幕上188
7.5.6地圖事件和圖釘的設置190
7.5.7保護數據庫194
7.6小結195
習題196
第8章使用React和微服務來構建一個CRM 197
8.1技術需求197
8.2理解Docker和微服務198
8.2.1 Docker術語198
8.2.2微服務199
8.2.3使用Swagger設計REST API 200
8.3使用Docker創建一個微服務應用程序203
8.3.1開始使用Docker創建一個微服務應用程序204
8.3.2添加服務器端路由支持209
8.3.3使用Docker運行服務212
8.3 .4創建React UI 215
8.3.5添加導航223
8.4小結224
習題225
延伸閱讀225
第9章使用Vue.js和TensorFlow.js進行圖像識別226
9.1技術需求226
9.2機器學習及TensorFlow簡介227
9.2.1什麼是機器學習228
9.2.2 TensorFlow及其與機器學習的關係228
9.3項目概述229
9.4開始在Vue中使用TensorFlow 229
9.4.1創建基於Vue的應用程序230
9.4.2使用Vue模板顯示主頁232
9.4.3修改HelloWorld組件來支持圖像分類236
9.4.4 Vue應用程序的入口點239
9.4.5添加姿勢檢測功能243
9.4.6完成姿勢檢測組件250
9.5小結253
習題254
延伸閱讀254
第10章構建ASP.NET Core音樂庫255
10.1技術需求255
10.2 ASP.NET Core MVC簡介256
10.3項目概述258
10.4開始使用ASP.NET Core、C#和TypeScript創建一個音樂庫259
10.4.1使用Visual Studio創建ASP.NET Core應用程序260
10.4.2理解應用程序結構263
10.4.3創建一個Discogs模型269
10.4.4關聯控制器275
10.4.5添加Index視圖276
10.4.6向應用程序添加TypeScript 279
10.4.7從ASP.NET調用TypeScript功能283
10.5小結285
習題285
延伸閱讀285
習題答案287


作者介紹


Peter O'Hanlon
有30多年的職業開發經驗。
他開發過各種類型和規模的桌面及Web應用程序。
在過去18年左右的時間中,他專注於C#、WPF、JavaScript及TypeScript。
多年來,他多次成為Code Project MVP,是Intel創新者計劃的成員,
並參加了Intel Ultimate Coder 2挑戰賽。
他始終熱情擁抱新的技術和語言,他積極參與到增強和混合現實、
計算機視覺、人工智能及手勢識別等技術中。




相關書籍

Practical CSS3: Develop and Design (Paperback)

作者 Chris Mills

2020-08-04

Harness the Power of Big Data The IBM Big Data Platform (Paperback)

作者 Paul Zikopoulos Dirk deRoos Krishnan Parasuraman Thomas Deutsch James Giles David Corrigan

2020-08-04

Spark 實戰, 2/e (Spark in Action ,2/e)

作者 Jean-Georges Perrin 林賜 譯

2020-08-04