定 價:¥88.00
作 者: | [美] 鮑里斯切爾尼 著 |
出版社: | 中國電力出版社 |
叢編項: | |
標 簽: | 暫缺 |
ISBN: | 9787519845964 | 出版時間: | 2020-07-01 | 包裝: | 平裝 |
開本: | 16開 | 頁數(shù): | 352 | 字數(shù): |
前言 1
第1 章 導言 9
第2 章 TypeScript 概述 . 13
2.1 編譯器 .13
2.2 類型系統(tǒng) 15
TypeScript VS. JavaScript.16
2.3 代碼編輯器設置 20
2.3.1 tsconfig.json .20
2.3.2 tslint.json .22
2.4 index.ts 23
2.5 練習題 .24
第3 章 類型全解 26
3.1 類型術(shù)語 27
3.2 類型淺談 28
3.2.1 any .28
3.2.2 unknown 30
3.2.3 boolean 30
3.2.4 number .32
3.2.5 bigint .33
3.2.6 string 34
3.2.7 symbol .34
3.2.8 對象 .35
3.2.9 中場休息:類型別名、并集和交集.42
3.2.10 數(shù)組 .46
3.2.11 元組 .48
3.2.12 null、undefined、void 和never .51
3.2.13 枚舉 .53
3.3 小結(jié) .58
3.4 練習題 .58
第4 章 函數(shù) 60
4.1 聲明和調(diào)用函數(shù) 60
4.1.1 可選和默認的參數(shù) .62
4.1.2 剩余參數(shù)64
4.1.3 call、apply 和bind 65
4.1.4 注解this 的類型 66
4.1.5 生成器函數(shù) 68
4.1.6 迭代器 .70
4.1.7 調(diào)用簽名72
4.1.8 上下文類型推導 75
4.1.9 函數(shù)類型重載 76
4.2 多態(tài) .83
4.2.1 什么時候綁定泛型 .88
4.2.2 可以在什么地方聲明泛型 .89
4.2.3 泛型推導91
4.2.4 泛型別名93
4.2.5 受限的多態(tài) 95
4.2.6 泛型默認類型 100
4.3 類型驅(qū)動開發(fā) 101
4.4 小結(jié) .102
4.5 練習題 .103
第5 章 類和接口 104
5.1 類和繼承 104
5.2 super 110
5.3 以this 為返回類型 . 111
5.4 接口 . 113
5.4.1 聲明合并 115
5.4.2 實現(xiàn) . 117
5.4.3 實現(xiàn)接口還是擴展抽象類 . 119
5.5 類是結(jié)構(gòu)化類型 120
5.6 類既聲明值也聲明類型 .121
5.7 多態(tài) .124
5.8 混入 .125
5.9 裝飾器 .129
5.10 模擬final 類 .132
5.11 設計模式 133
5.11.1 工廠模式 133
5.11.2 建造者模式 134
5.12 小結(jié) .136
5.13 練習題 .136
第6 章 類型進階 138
6.1 類型之間的關(guān)系 139
6.1.1 子類型和超類型 139
6.1.2 型變 .141
6.1.3 可賦值性148
6.1.4 類型拓寬149
6.1.5 細化 .154
6.2 全面性檢查 159
6.3 對象類型進階 161
6.3.1 對象類型的類型運算符 .161
6.3.2 Record 類型 .166
6.3.3 映射類型167
6.3.4 伴生對象模式 170
6.4 函數(shù)類型進階 171
6.4.1 改善元組的類型推導 .171
6.4.2 用戶定義的類型防護措施 .172
6.5 條件類型 174
6.5.1 條件分配175
6.5.2 infer 關(guān)鍵字 .177
6.5.3 內(nèi)置的條件類型 178
6.6 解決辦法 179
6.6.1 類型斷言179
6.6.2 非空斷言180
6.6.3 明確賦值斷言 183
6.7 模擬名義類型 184
6.8 安全地擴展原型 187
6.9 小結(jié) .189
6.10 練習題 .190
第7 章 處理錯誤 192
7.1 返回null 193
7.2 拋出異常 194
7.3 返回異常 197
7.4 Option 類型 199
7.5 小結(jié) .206
7.6 練習題 .207
第8 章 異步編程、并發(fā)和并行 . 208
8.1 JavaScript 的事件循環(huán) .209
8.2 處理回調(diào) 211
8.3 promise:讓一切回到正軌 214
8.4 async 和await 219
8.5 異步流 .220
事件發(fā)射器.221
8.6 多線程類型安全 224
8.6.1 在瀏覽器中:使用Web 職程.224
8.6.2 在NodeJS 中:使用子進程 .234
8.7 小結(jié) .235
8.8 練習題 .236
第9 章 前后端框架 237
9.1 前端框架 237
9.1.1 React 239
9.1.2 Angular 6/7 246
9.2 類型安全的API .250
9.3 后端框架 252
9.4 小結(jié) .253
第10 章 命名空間和模塊 254
10.1 JavaScript 模塊簡史 .255
10.2 import、export .258
10.2.1 動態(tài)導入 259
10.2.2 使用CommonJS 和AMD 模塊 262
10.2.3 模塊模式與腳本模式 .262
10.3 命名空間 263
10.3.1 沖突 .265
10.3.2 編譯輸出 266
10.4 聲明合并 268
10.5 小結(jié) .269
10.6 練習題 .270
第11 章 與JavaScript 互操作 271
11.1 類型聲明 272
11.1.1 外參變量聲明 275
11.1.2 外參類型聲明 277
11.1.3 外參模塊聲明 278
11.2 逐步從JavaScript 遷移到TypeScript .280
11.2.1 第一步:添加TSC 280
11.2.2 第二步(上):對JavaScript 代碼做類型檢查(可選) 281
11.2.3 第二步(下):添加JSDoc 注解(可選) .283
11.2.4 第三步:把文件重命名為.ts .284
11.2.5 第四步:嚴格要求 .285
11.3 尋找JavaScript 代碼的類型信息 .286
11.4 使用第三方JavaScript .289
11.4.1 自帶類型聲明的JavaScript 289
11.4.2 DefinitelyTyped 中有類型聲明的JavaScript 290
11.4.3 DefinitelyTyped 中沒有類型聲明的JavaScript 290
11.5 小結(jié) .292
第12 章 構(gòu)建和運行TypeScript . 293
12.1 構(gòu)建TypeScript 項目 .293
12.1.1 項目結(jié)構(gòu) 293
12.1.2 構(gòu)建產(chǎn)物 294
12.1.3 設置編譯目標 295
12.1.4 生成源碼映射 300
12.1.5 項目引用 300
12.1.6 監(jiān)控錯誤 303
12.2 在服務器中運行TypeScript .304
12.3 在瀏覽器中運行TypeScript .304
12.4 把TypeScript 代碼發(fā)布到NPM 中 307
12.5 三斜線指令 308
12.5.1 types 指令 309
12.5.2 amd-module 指令 .310
12.6 小結(jié) . 311
第13 章 總結(jié) 313
附錄A 類型運算符 . 315
附錄B 實用類型 317
附錄C 限定作用范圍的聲明 . 319
附錄D 為第三方JavaScript 模塊編寫聲明文件的
技巧 321
附錄E 三斜線指令 . 329
附錄F 安全相關(guān)的TSC 編譯器標志 . 331
附錄G TSX . 333