前言
基礎篇
第1章 Hello TypeScript 2
1.1 引言 2
1.1.1 JavaScript 與 ECMAScript 3
1.1.2 TypeScript 5
1.2 準備環(huán)境 8
1.2.1 安裝 Node.js 8
1.2.2 npm和 Yarn 9
1.2.3 安裝 TypeScript 10
1.3 Visual Studio Code 11
1.3.1 安裝VSCode 11
1.3.2 安裝Shell 命令 12
1.4 Hello World 12
1.5 本章小結 14
1.6 作業(yè) 14
第2章 類型與函數(shù) 15
2.1 基本類型 15
2.1.1 JavaScript 的基本類型 16
2.1.2 TypeScript的基本類型 16
2.1.3 變量聲明 18
2.1.4 泛型 19
2.1.5 枚舉 22
2.1.6 symbol 25
2.1.7 iterator和generator 26
2.2 高級類型 31
2.2.1 interface 31
2.2.2 交叉類型與聯(lián)合類型 32
2.2.3 類型保護與區(qū)分類型 35
2.2.4 typeof 與 instanceof 38
2.2.5 類型別名 40
2.2.6 字面量類型 41
2.2.7 索引類型與映射類型 41
2.2.8 類型推導 44
2.3 函數(shù) 48
2.3.1 定義函數(shù) 48
2.3.2 參數(shù) 49
2.3.3 回調函數(shù)和 promise 52
2.3.4 async 和 await 59
2.3.5 重載 59
2.4 本章小結 61
2.5 作業(yè) 61
第3章 接口與類 63
3.1 接口 63
3.1.1 定義 64
3.1.2 函數(shù)類型 69
3.1.3 可索引類型 70
3.1.4 繼承接口 71
3.2 類 72
3.2.1 定義 73
3.2.2 實現(xiàn)接口 73
3.2.3 繼承 74
3.2.4 存取器 76
3.2.5 只讀屬性 77
3.2.6 類函數(shù)和靜態(tài)屬性 78
3.2.7 抽象類 78
3.3 本章小結 80
3.4 作業(yè) 80
第4章 命名空間與模塊 81
4.1 命名空間 81
4.1.1 單文件命名空間 81
4.1.2 多文件命名空間 83
4.1.3 別名 84
4.1.4 外部命名空間 85
4.2 模塊 86
4.2.1 導出與導入 87
4.2.2 生成模塊 91
4.2.3 外部模塊 94
4.3 本章小結 97
4.4 作業(yè) 97
實戰(zhàn)篇
第5章 命令行應用實戰(zhàn):天氣查詢 106
5.1 創(chuàng)建項目 106
5.1.1 初始化項目 108
5.1.2 配置 TSConfig 109
5.1.3 配置 TSLint 112
5.1.4 使用 Git 113
5.2 Commander.js 117
5.2.1 格式化命令 118
5.2.2 更好的輸入 120
5.2.3 添加色彩 122
5.3 處理網絡請求 123
5.3.1 定義接口 123
5.3.2 Promise 125
5.3.3 await 和 async 127
5.4 本章小結 128
5.5 作業(yè) 128
第6章 Express實戰(zhàn):后端服務 129
6.1 創(chuàng)建項目 129
6.1.1 初始化項目 130
6.1.2 Husky 131
6.2 定義數(shù)據(jù)結構 132
6.2.1 連接數(shù)據(jù)庫 133
6.2.2 定義數(shù)據(jù)模型 134
6.3 數(shù)據(jù)接口 135
6.3.1 Express 136
6.3.2 增刪查改 137
6.4 本章小結 142
6.5 作業(yè) 143
第7章 React 實戰(zhàn):桌面網站 144
7.1 創(chuàng)建項目 144
7.1.1 create-react-app 145
7.1.2 配置 TypeScript 147
7.1.3 配置 TSLint 156
7.2 架構 158
7.2.1 React-Router 158
7.2.2 Redux 160
7.3 編輯提醒事項 163
7.3.1 組件 164
7.3.2 Redux 組件 166
7.3.3 Redux Persist 170
7.3.4 處理網絡請求 174
7.4 實現(xiàn)列表 180
7.4.1 實現(xiàn)列表頁 180
7.4.2 復用編輯組件 182
7.5 測試 190
7.5.1 配置 Jest 190
7.5.2 組件的測試 192
7.5.3 Action 的測試 195
7.5.4 Reducer的測試 196
7.6 本章小結 197
7.7 作業(yè) 198
第8章 React Native 實戰(zhàn):客戶端開發(fā) 199
8.1 創(chuàng)建項目 199
8.1.1 配置開發(fā)環(huán)境 200
8.1.2 創(chuàng)建 React Native 項目 208
8.2 設計架構 210
8.2.1 React Navigation 211
8.2.2 Reudx 212
8.2.3 列表頁 215
8.3 本章小結 217
8.4 作業(yè) 217
第9章 Vue 實戰(zhàn):HTML 5網頁開發(fā) 219
9.1 創(chuàng)建項目 219
9.1.1 創(chuàng)建 Vue 項目 220
9.1.2 寫TypeScript代碼 221
9.2 實現(xiàn)列表 225
9.2.1 vue-class-component 225
9.2.2 網絡請求 228
9.2.3 列表頁 230
9.3 本章小結 231
9.4 作業(yè) 231
第10章 小程序實戰(zhàn) 234
10.1 創(chuàng)建項目 234
10.1.1 創(chuàng)建小程序 236
10.1.2 創(chuàng)建 WePY 工程項目 239
10.1.3 配置 TypeScript 241
10.1.4 入口文件 242
10.1.5 WePY頁面 243
10.1.6 WePY組件 246
10.1.7 針對原生API進行優(yōu)化 246
10.2 實現(xiàn)列表 247
10.2.1 網絡請求 247
10.2.2 列表頁 249
10.3 本章小結 249
10.4 作業(yè) 250
第11章 項目遷移與社區(qū)共建 251
11.1 項目遷移 251
11.1.1 從 JavaScript 遷移到TypeScript 252
11.1.2 從 Flow遷移到TypeScript 253
11.2 社區(qū)共建 254
11.2.1 貢獻類型文件 254
11.2.2 關注更新 256
11.3 本章小結 257
11.4 作業(yè) 257