作 者:(美)雅科夫·法因,(俄羅斯)安東·莫伊謝耶夫 著 王紅濱,王勇,何鳴 譯
定 價:128
出 版 社:清華大學出版社
出版日期:2021年05月01日
頁 數:856
裝 幀:平裝
ISBN:9787302578307
"強類型可以消除幾乎所有由未預料到的數據值而引起的錯誤。TypeScript是JavaScript的增強版本;使用TypeScript,可以指定類型以及類型標識,因此編寫的代碼更易閱讀,在運行時也不易出錯。由於TypeScript的核心是標準的JavaScript,因此其代碼可以在所有主流瀏覽器上運行,並且可以使用Angular、React和Vue等框架。《TypeScript入門與區塊鏈項目實戰》教你發掘在基於瀏覽器的應用程序或者在獨立應用程序中使用類型的好處。在此實用指南中,你將構建一個等
●第Ⅰ部分 精通TypeScript語法
第1章 熟悉TypeScript 3
1.1 使用TypeScript編程的理由 3
1.2 典型的TypeScript工作流 7
1.3 使用TypeScript編譯器 8
1.4 了解Visual Studio Code 12
1.5 本章小結 14
第2章 基本類型與自定義類型 15
2.1 聲明變量類型 15
2.1.1 基本類型標注 16
2.1.2 函數聲明中的類型 20
2.1.3 union類型 21
2.2 定義自定義類型 23
2.2.1 使用type關鍵字 24
2.2.2 將類用作自定義類型 25
2.2.3 將接口用作自定義類型 27
2.2.4 結構化還是名義類型繫統 29
2.2.5 自定義類型的unions 31
2.3 any和unknown類型,以及用戶定義的類型保護 33
2.4 微型項目 35
2.5 本章小結 36
第3章 面向對像編程的類和接口 37
3.1 類 37
3.1.1 開始了解類繼承 38
3.1.2 訪問修飾符public、private、protected 39
3.1.3 靜態變量及singleton(單例)設計模式示例 41
3.1.4 super()方法與super關鍵字 43
3.1.5 抽像類 45
3.1.6 方法重載 48
3.2 使用interface 53
3.2.1 執行合同 53
3.2.2 擴展接口 55
3.2.3 接口編程 57
3.3 本章小結 60
第4章 使用枚舉和泛型 61
4.1 使用枚舉 61
4.1.1 數字型枚舉 61
4.1.2 字符串枚舉 64
4.1.3 使用常量枚舉 66
4.2 使用泛型 67
4.2.1 理解泛型 67
4.2.2 創建自己的泛型類型 72
4.2.3 創建泛型函數 76
4.2.4 強制執行高階函數的返回類型 80
4.3 本章小結 81
第5章 裝飾器與高級類型 83
5.1 裝飾器 84
5.1.1 創建類裝飾器 85
5.1.2 創建函數裝飾器 90
5.2 映射類型 92
5.2.1 隻讀映射類型 92
5.2.2 聲明自己的映射類型 96
5.2.3 其他內置的映射類型 97
5.3 條件類型 99
5.4 本章小結 104
第6章 開發工具集 105
6.1 源映射 106
6.2 TSLint linter 108
6.3 使用Webpack綁定代碼 111
6.3.1 使用Webpack綁定JavaScript 112
6.3.2 使用Webpack綁定TypeScript 116
6.4 使用Babel編譯器 119
6.4.1 在JavaScript中使用Babel 122
6.4.2 在TypeScript中使用Babel 124
6.4.3 在TypeScript與Webpack中使用Babel 126
6.5 工具介紹 128
6.5.1 Deno介紹 128
6.5.2 ncc介紹 129
6.6 本章小結 132
第7章 在項目中同時使用TypeScript和JavaScript 133
7.1 類型定義文件 133
7.1.1 了解類型定義文件 134
7.1.2 類型定義文件與IDE 135
7.1.3 shim與類型定義 138
7.1.4 創建自己的類型定義文件 139
7.2 使用JavaScript庫的TypeScript應用程序示例 140
7.3 在JavaScript項目中使用TypeScript 148
7.4 本章小結 151
第Ⅱ部分 基於TypeScript的區塊鏈應用
第8章 開發區塊鏈應用 155
8.1 區塊鏈簡介 156
8.1.1 加密哈希函數 157
8.1.2 區塊由什麼組成 159
8.1.3 什麼是區塊挖掘 160
8.1.4 哈希和隨機數的迷你項目 162
8.2 開發第一個區塊鏈 164
8.2.1 項目結構 164
8.2.2 創建一個原始區塊鏈 167
8.2.3 使用工作證明創建區塊鏈 170
8.3 本章小結 173
第9章 開發基於瀏覽器的區塊鏈節點 175
9.1 運行區塊鏈Web應用 176
9.1.1 項目結構 176
9.1.2 使用npm腳本部署應用 178
9.1.3 使用區塊鏈Web應用 179
9.2 Web客戶端 182
9.3 挖掘區塊 187
9.4 使用crypto API生成哈希 191
9.5 獨立的區塊鏈客戶端 194
9.6 在瀏覽器中調試TypeScript 196
9.7 本章小結 198
第10章 使用Node.js、TypeScript和WebSocket進行客戶端-服務器通信 199
10.1 使用最長鏈規則解決衝突 200
10.2 為區塊鏈添加服務器 202
10.3 項目結構 203
10.4 項目的配置文件 204
10.4.1 配置TypeScript編譯環境 204
10.4.2 package.json包含什麼 206
10.4.3 配置nodemon 207
10.4.4 運行區塊鏈App 208
10.5 WebSocket簡介 213
10.5.1 HTTP和WebSocket協議的對比 214
10.5.2 將數據從節點服務器推送到普通客戶端 215
10.6 回顧通知工作流 219
10.6.1 回顧服務器代碼 221
10.6.2 回顧客戶端代碼 231
10.7 本章小結 240
第11章 使用TypeScript開發Angular應用程序 241
11.1 使用Angular CLI生成並運行一個新的應用程序 242
11.2 查看生成的App 244
11.3 Angular服務和依賴注入 250
11.4 使用ProductService注入的應用 253
11.5 使用TypeScript進行抽像編程 255
11.6 開始處理HTTP請求 257
11.7 表單入門 261
11.8 Router基礎 265
11.9 本章小結 269
第12章 使用Angular開發區塊鏈客戶端 271
12.1 啟動Angular區塊鏈應用程序 271
12.2 回顧AppComponent 273
12.3 回顧TransactionFormComponent 277
12.4 回顧BlockComponent 278
12.5 回顧服務 281
12.6 本章小結 283
第13章 使用TypeScript開發React.js應用程序 285
13.1 使用React開發最簡單的網頁 286
13.2 使用Create React App生成並運行一個新應用 288
13.3 管理組件的狀態 293
13.3.1 向基於類的組件添加狀態 293
13.3.2 使用鉤子管理函數組件的狀態 294
13.4 開發一個天氣應用程序 297
13.4.1 向App組件添加狀態鉤子 298
13.4.2 在App組件中使用useEffect鉤子獲取數據 300
13.4.3 使用props 306
13.4.4 子組件如何將數據傳遞給其父組件 311
13.5 Virtual DOM 313
13.6 本章小結 314
第14章 使用React.js開發區塊鏈客戶端 315
14.1 啟動客戶端和消息服務器 315
14.2 lib目錄中發生的變化 318
14.3 smart App組件 320
14.3.1 添加事務 322
14.3.2 生成一個新區塊 324
14.3.3 解釋useEffect()鉤子函數 325
14.3.4 使用useCallback()鉤子的記憶化緩存(Memoization) 327
14.4 presentation組件——TransactionForm 330
14.5 presentation組件——PendingTransactionsPanel 333
14.6 presentation組件——BlocksPanel和BlockComponent 335
14.7 本章小結 337
第15章 使用TypeScript開發Vue.js應用程序 339
15.1 使用Vue開發最簡單的Web頁面 340
15.2 使用Vue CLI生成和運行新應用程序 343
15.3 開發有路由支持的單頁應用程序 349
15.3.1 使用Vue Router生成一個新應用程序 350
15.3.2 在主視圖中顯示products列表 353
15.3.3 使用Vue Router傳遞數據 358
15.4 本章小結 362
第16章 用Vue.js開發區塊鏈客戶端 365
16.1 啟動客戶端和消息服務器 366
16.2 App組件 369
16.3 presentation組件——TransactionForm 372
16.4 presentation組件——PendingTransactionsPanel 376
16.5 presentation組件——BlocksPanel和Block 378
16.6 本章小結 382
後記 382
附錄A JavaScript基礎知識 383
A.1 如何運行代碼示例 383
A.2 關鍵字let和const 383
A.2.1 var關鍵字和hoisting(提升) 384
A.2.2 使用let和const的塊級作用域 385
A.3 字面量模板 386
A.4 可選參數和默認值 388
A.5 箭頭函數表達式 389
A.6 rest運算符 391
A.7 spread運算符 393
A.8 解構 394
A.8.1 解構對像 394
A.8.2 解構數組 397
A.9 類和繼承 398
A.9.1 構造函數 400
A.9.2 super關鍵字和super函數 401
A.9.3 靜態類成員 402
A.10 異步處理 403
A.10.1 回調地獄 404
A.10.2 promise 404
A.10.3 同時執行多個promise 407
A.10.4 async-await 408
A.11 模塊 410
A.12 轉換器 413
強類型可以消除幾乎所有由未預料到的數據值而引起的錯誤。TypeScript是JavaScript的增強版本;使用TypeScript,可以指定類型以及類型標識,因此編寫的代碼更易閱讀,在運行時也不易出錯。由於TypeScriDt的核心是標準的JavaScript,因此其代碼可以在所有主流瀏覽器上運行,並且可以使用Angular、React和Vue等框架。《TypeScript入門與區塊鏈項目實戰》教你發掘在基於瀏覽器的應用程序或者在獨立應用程序中使用類型的好處。在此實用指南中,你將構建一個精彩的區塊鏈服務器程序,從中掌握一繫列類型敏感的編程技術。此外,還可以通過使用類、接口及其他一些高級特性(例如裝飾器和條件類型)掌握面向對像編程的一些知識和技巧。主要內容 ·精通TypeScriDt語法 ·在TypeScript中使用、JavaScript庫 ·使用Babel和Webpack工等
(美)雅科夫·法因,(俄羅斯)安東·莫伊謝耶夫 著 王紅濱,王勇,何鳴 譯
"Yakov Fain是Farata Systems和SuranceBay兩家IT公司的聯合創始人。他有許多個人著書或合著的書,例如Java編程書籍24-Hour Trainer, Angular Development with TypeScript, Java Programming for Kids等。作為一名Java專家,他講授和主持多個關於Web和Java相關技術的課程和研討會,並在國際會議上發表演講。Anton Moiseev是SuranceBay的首席軟件工程師。他使用Java和.NET技術進行企業級應用開發已經有十多年。他具有堅實的後臺開發基礎和對Web相關技術的高度專注,等