TypeScript 全棧開發

趙卓

  • 出版商: 人民郵電
  • 出版日期: 2023-05-01
  • 售價: $539
  • 貴賓價: 9.5$512
  • 語言: 簡體中文
  • 頁數: 318
  • ISBN: 7115605572
  • ISBN-13: 9787115605573
  • 相關分類: JavaScriptTypeScript
  • 立即出貨

  • TypeScript 全棧開發-preview-1
  • TypeScript 全棧開發-preview-2
TypeScript 全棧開發-preview-1

買這商品的人也買了...

商品描述

本書旨在介紹TypeScript的語法和應用。本書首先介紹TypeScript的基本語法,以幫助讀者編寫基本的應用程序;然後講述TypeScript的進階語法,這些語法可以滿足復雜項目中的編程要求;接著討論如何將TypeScript代碼編譯為JavaScript代碼,如何快速地編寫與調試TypeScript代碼,如何通過工具自動檢查代碼的正確性;最後闡述如何在TypeScript項目中使用JavaScript,如何使用TypeScript開發前端項目與後端項目。

本書適合前端開發工程師、後端開發工程師以及對TypeScript感興趣的讀者閱讀。

作者簡介

赵卓,新蛋科技有限公司电子商务研发团队项目经理,从事过多年测试工作和开发工作,精通各类开发和测试技术。编写过的图书有《Kubernetes从入门到实践》《Selenium自动化测试完全指南:基于Python》,翻译过的图书有《精通Selenium WebDriver 3.0(第2版)》等。

目錄大綱

目 錄

 

第 一部分 基礎語法

第 1章 TypeScript簡介 3

1.1 TypeScript的發展史 3

1.1.1 JavaScript的興起 3

1.1.2 JavaScript的缺陷 5

1.1.3 TypeScript的誕生 6

1.2 搭建TypeScript開發環境 7

1.2.1 安裝Node.js 7

1.2.2 安裝TypeScript 8

1.2.3 安裝Visual Studio Code 8

1.3 編寫第 一個TypeScript

程序:Hello World 10

1.3.1 編寫並運行

TypeScript程序 10

1.3.2 靜態檢查和智能提示 11

第 2章 語法結構與類型結構 13

2.1 語法結構 13

2.1.1 聲明變量 14

2.1.2 標識符名稱 14

2.1.3 數據類型 15

2.1.4 運算符 15

2.1.5 字面量 16

2.1.6 分號與斷句 16

2.1.7 註釋 17

2.1.8 表達式 17

2.1.9 流程控制 17

2.1.10 代碼塊 18

2.2 類型結構 19

第3章 原始類型 20

3.1 布爾類型 20

3.2 數值類型 21

3.3 長整型 22

3.4 字符串類型 22

3.5 枚舉類型 24

3.5.1 數值枚舉 24

3.5.2 字符串枚舉 26

3.5.3 應慎用的枚舉使用方式 26

3.5.4 常量枚舉 28

3.6 symbol 29

3.7 undefined、null和NaN 29

3.7.1 undefined 29

3.7.2 null 30

3.7.3 NaN 30

3.8 類型轉換 30

3.8.1 將其他類型轉換為

布爾類型 30

3.8.2 將其他類型轉換為數值

類型 31

3.8.3 將其他類型轉換為

長整型 33

3.8.4 將其他類型轉換為字符串類型 33

3.9 字面量類型 34

3.10 變量與常量 35

3.10.1 let關鍵字 35

3.10.2 const關鍵字 37

第4章 表達式與運算符 38

4.1 算術運算符 38

4.2 賦值運算符 40

4.3 字符串運算符 40

4.4 比較運算符 41

4.5 條件運算符 43

4.6 邏輯運算符 44

4.7 類型運算符 45

4.8 位運算符 46

4.9 運算符的優先級 47

第5章 流程控制 50

5.1 選擇語句 50

5.1.1 if/if…else/if…else if語句 51

5.1.2 switch語句 54

5.2 循環語句 57

5.2.1 for語句 57

5.2.2 while語句 60

5.2.3 do…while語句 60

5.2.4 break與continue 關鍵字 61

第6章 引用類型 62

6.1 原始值與引用值 62

6.1.1 值的復制 63

6.1.2 值的傳遞 64

6.1.3 值的比較 65

6.1.4 常量的使用 66

6.2 引用類型分類 66

第7章 數組與元組 69

7.1 數組 69

7.1.1 數組的聲明與讀寫 69

7.1.2 數組的遍歷 70

7.1.3 數組的方法 70

7.1.4 只讀數組 77

7.1.5 多維數組 77

7.2 元組 77

7.2.1 元組的聲明和讀寫 77

7.2.2 可選元素與剩餘元素 78

7.2.3 元組的方法 79

7.2.4 將元組轉換為數組 79

 

第8章 函數 81

8.1 函數的聲明與調用 81

8.1.1 以普通方式聲明與調用 81

8.1.2 通過表達式聲明與調用 82

8.1.3 特殊的聲明與調用方式 84

8.2 函數的參數與返回值 85

8.2.1 普通參數與類型推導 86

8.2.2 可選參數 87

8.2.3 默認參數 88

8.2.4 剩餘參數 88

8.2.5 返回值 90

8.3 函數的調用簽名與重載 92

8.3.1 調用簽名 92

8.3.2 重載函數 93

8.4 函數的內置屬性 96

8.4.1 arguments 96

8.4.2 caller 97

8.4.3 this 98

8.5 函數的內置方法 100

8.5.1 apply()和call() 100

8.5.2 bind() 100

第9章 接口與對象 103

9.1 對象的聲明 103

9.1.1 使用對象類型字面量

聲明對象 104

9.1.2 使用類型別名聲明

對象 106

9.1.3 使用接口聲明對象 107

9.2 屬性或方法的修飾符 107

9.2.1 可選修飾符 107

9.2.2 只讀修飾符 108

9.2.3 索引簽名 109

9.3 接口的合並 112

9.3.1 接口繼承 112

9.3.2 交叉類型 113

9.3.3 聲明合並 113

9.3.4 接口合並時的沖突 114

9.4 特殊對象類型 116

9.4.1 object 116

9.4.2 Object和{} 117

第 10章 類 119

10.1 類的聲明 119

10.1.1 基本聲明語法 119

10.1.2 創建實例對象 120

10.2 類的成員 121

10.2.1 屬性 121

10.2.2 方法 123

10.2.3 構造函數 125

10.2.4 存取器 126

10.2.5 索引成員 128

10.3 類的繼承 129

10.3.1 簡單的繼承 129

10.3.2 重寫父類成員 130

10.3.3 復用父類成員 134

10.4 繼承接口與抽象類 135

10.4.1 繼承接口 135

10.4.2 繼承抽象類 137

10.5 成員的可訪問性 139

10.5.1 public 139

10.5.2 protected 140

10.5.3 private 140

10.5.4 可訪問性的兼容性 142

10.6 靜態成員 143

10.6.1 靜態成員的聲明與

訪問 143

10.6.2 靜態成員的繼承 143

10.6.3 靜態代碼塊 144

10.7 其他應用與註意事項 145

10.7.1 類的初始化順序 145

10.7.2 參數屬性 146

10.7.3 類表達式 146

10.7.4 不夠嚴格的類 147

10.7.5 instanceof運算符 148

第 11章 頂部類型與底部類型 149

11.1 any 149

11.2 unknown 150

11.3 類型斷言與類型防護 151

11.4 never 152

第 12章 進階類型 154

12.1 泛型 154

12.1.1 泛型的基礎用法 154

12.1.2 在函數中使用泛型 155

12.1.3 在類中使用泛型 157

12.1.4 泛型類型 158

12.1.5 泛型約束 159

12.2 類型別名 160

12.2.1 類型別名的基本用法 160

12.2.2 類型別名與接口的區別 161

12.3 聯合類型與交叉類型 162

12.3.1 聯合類型 162

12.3.2 交叉類型 163

第二部分 進階語法

第 13章 模塊與命名空間 167

13.1 模塊 167

13.1.1 導出模塊 167

13.1.2 使用被導出的模塊 170

13.1.3 導入與導出TypeScript類型聲明 173

13.1.4 導入或導出模塊時的註意事項 175

13.1.5 編譯與運行模塊 176

13.1.6 解析模塊路徑 184

13.2 命名空間 185

13.2.1 聲明命名空間 186

13.2.2 使用命名空間的成員 187

13.2.3 在多文件中使用命名空間 189

13.2.4 命名空間的本質與局限 190

13.3 聲明合並 190

13.3.1 同類型之間的聲明合並 191

13.3.2 不同類型之間的聲明合並 193

第 14章 錯誤處理 195

14.1 捕獲並處理錯誤 195

14.2 錯誤對象 198

14.3 自定義錯誤 200

14.3.1 拋出錯誤 200

14.3.2 自定義錯誤類型 201

第 15章 異步編程 203

15.1 異步任務運行機制 203

15.2 回調函數 205

15.2.1 常規異步任務 205

15.2.2 計時器 207

15.3 Promise對象 209

15.3.1 聲明並使用Promise對象 209

15.3.2 錯誤處理 212

15.3.3 最終必須被執行的代碼 213

15.3.4 組合Promise對象 214

15.3.5 創建resolved或rejected狀態的Promise對象 215

15.4 異步函數 215

15.4.1 Promise對象的局限性 215

15.4.2 使用async創建異步函數 217

15.4.3 通過await使用異步函數 217

15.4.4 以異步函數優化Promise對象 218

第 16章 內置引用對象 220

16.1 Date對象 220

16.1.1 創建日期 220

16.1.2 格式化日期 221

16.1.3 獲取或設置日期 222

16.2 RegExp對象 224

16.2.1 創建RegExp對象 224

16.2.2 在字符串的方法中傳入RegExp對象 225

16.2.3 直接使用RegExp對象 226

16.3 單例內置對象 227

16.3.1 globalThis對象 227

16.3.2 Math對象 228

16.3.3 console對象 230

 

 

 

第 17章 多線程編程 233

17.1 瀏覽器多線程—Web Worker 233

17.1.1 Web Worker的工作原理 233

17.1.2 專用Worker線程 234

17.1.3 共享Worker線程 237

17.1.4 Worker線程間的數據傳遞 239

17.2 服務器多線程:Worker Threads 240

17.2.1 基本使用 240

17.2.2 錯誤處理 242

17.2.3 其他事件 242

17.2.4 註冊一次性事件 243

第三部分 編譯與調試

第 18章 編譯 247

18.1 編譯命令 247

18.1.1 直接編譯指定文件 247

18.1.2 編譯選項:編譯文件及輸出路徑 248

18.1.3 編譯選項:按需輸出 JavaScript代碼 249

18.1.4 編譯選項:具有調試作用的選項 250

18.1.5 編譯選項:類型 檢查 251

18.2 配置文件 255

18.2.1 tsconfig.json文件的創建及匹配規則 255

18.2.2 文件列表 257

18.2.3 編譯選項 259

18.2.4 項目引用 261

18.2.5 配置繼承 265

18.2.6 其他配置 267

18.3 三斜線指令 268

18.3.1 引用其他文件 269

18.3.2 指定包含在編譯中的庫文件 269

18.3.3 註意事項及其他指令 270

 

 

第 19章 在IDE中編寫和調試代碼 272

19.1 使用Visual Studio Code編寫代碼 272

19.1.1 常用功能 272

19.1.2 代碼編寫選項 274

19.1.3 擴展功能 278

19.2 調試TypeScript代碼 279

19.2.1 在IDE中調試代碼 279

19.2.2 在瀏覽器中調試代碼 280

第 20章 引入擴展工具 282

20.1 引入靜態檢查工具 ESLint 282

20.1.1 ESLint的安裝與 應用 282

20.1.2 配置檢查規則 284

20.2 引入單元測試工具Jest 285

20.2.1 Jest的安裝與 配置 285

20.2.2 編寫和執行單元測試 286

第四部分 項目應用

第 21章 在TypeScript項目中使用JavaScript 291

21.1 使用聲明文件 291

21.1.1 使用聲明文件的原因 291

21.1.2 為JavaScript編寫聲明文件 293

21.1.3 為TypeScript生成聲明 文件 296

21.2 使用第三方 JavaScript 296

21.2.1 使用自帶聲明文件的第三方庫 296

21.2.2 使用DefinitelyTyped聲明文件庫 297

21.2.3 自行編寫聲明模塊 297

21.3 將項目從JavaScript遷移到TypeScript中 299

第 22章 使用TypeScript開發後端項目 300

22.1 後端開發簡介 301

22.1.1 常用的後端框架 301

22.1.2 Express框架的用法 301

22.2 實戰項目案例:編寫任務管理系統後端API 304

22.2.1 編寫任務類型聲明並實現 任務數據訪問功能 304

22.2.2 編寫任務管理後端 服務API 306

第 23章 使用TypeScript開發前端項目 309

23.1 前端開發簡介 309

23.1.1 常用的前端框架 309

23.1.2 React框架的用法 310

23.2 實戰項目案例:編寫任務管理系統的前端界面 311

23.2.1 編寫任務類型聲明及任務管理後端API 312

23.2.2 編寫添加任務UI組件及任務列表項UI組件 313

23.2.3 編寫任務管理頁面及樣式 315