定 價(jià):¥88.00
作 者: | [美] 鮑里斯切爾尼 著 |
出版社: | 中國(guó)電力出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787519845964 | 出版時(shí)間: | 2020-07-01 | 包裝: | 平裝 |
開(kāi)本: | 16開(kāi) | 頁(yè)數(shù): | 352 | 字?jǐn)?shù): |
前言 1
第1 章 導(dǎo)言 9
第2 章 TypeScript 概述 . 13
2.1 編譯器 .13
2.2 類型系統(tǒng) 15
TypeScript VS. JavaScript.16
2.3 代碼編輯器設(shè)置 20
2.3.1 tsconfig.json .20
2.3.2 tslint.json .22
2.4 index.ts 23
2.5 練習(xí)題 .24
第3 章 類型全解 26
3.1 類型術(shù)語(yǔ) 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 對(duì)象 .35
3.2.9 中場(chǎng)休息:類型別名、并集和交集.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 練習(xí)題 .58
第4 章 函數(shù) 60
4.1 聲明和調(diào)用函數(shù) 60
4.1.1 可選和默認(rèn)的參數(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 上下文類型推導(dǎo) 75
4.1.9 函數(shù)類型重載 76
4.2 多態(tài) .83
4.2.1 什么時(shí)候綁定泛型 .88
4.2.2 可以在什么地方聲明泛型 .89
4.2.3 泛型推導(dǎo)91
4.2.4 泛型別名93
4.2.5 受限的多態(tài) 95
4.2.6 泛型默認(rèn)類型 100
4.3 類型驅(qū)動(dòng)開(kāi)發(fā) 101
4.4 小結(jié) .102
4.5 練習(xí)題 .103
第5 章 類和接口 104
5.1 類和繼承 104
5.2 super 110
5.3 以this 為返回類型 . 111
5.4 接口 . 113
5.4.1 聲明合并 115
5.4.2 實(shí)現(xiàn) . 117
5.4.3 實(shí)現(xiàn)接口還是擴(kuò)展抽象類 . 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 設(shè)計(jì)模式 133
5.11.1 工廠模式 133
5.11.2 建造者模式 134
5.12 小結(jié) .136
5.13 練習(xí)題 .136
第6 章 類型進(jìn)階 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 細(xì)化 .154
6.2 全面性檢查 159
6.3 對(duì)象類型進(jìn)階 161
6.3.1 對(duì)象類型的類型運(yùn)算符 .161
6.3.2 Record 類型 .166
6.3.3 映射類型167
6.3.4 伴生對(duì)象模式 170
6.4 函數(shù)類型進(jìn)階 171
6.4.1 改善元組的類型推導(dǎo) .171
6.4.2 用戶定義的類型防護(hù)措施 .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 安全地?cái)U(kuò)展原型 187
6.9 小結(jié) .189
6.10 練習(xí)題 .190
第7 章 處理錯(cuò)誤 192
7.1 返回null 193
7.2 拋出異常 194
7.3 返回異常 197
7.4 Option 類型 199
7.5 小結(jié) .206
7.6 練習(xí)題 .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 中:使用子進(jìn)程 .234
8.7 小結(jié) .235
8.8 練習(xí)題 .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 模塊簡(jiǎn)史 .255
10.2 import、export .258
10.2.1 動(dòng)態(tài)導(dǎo)入 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 練習(xí)題 .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 第二步(上):對(duì)JavaScript 代碼做類型檢查(可選) 281
11.2.3 第二步(下):添加JSDoc 注解(可選) .283
11.2.4 第三步:把文件重命名為.ts .284
11.2.5 第四步:嚴(yán)格要求 .285
11.3 尋找JavaScript 代碼的類型信息 .286
11.4 使用第三方JavaScript .289
11.4.1 自帶類型聲明的JavaScript 289
11.4.2 DefinitelyTyped 中有類型聲明的JavaScript 290
11.4.3 DefinitelyTyped 中沒(méi)有類型聲明的JavaScript 290
11.5 小結(jié) .292
第12 章 構(gòu)建和運(yùn)行TypeScript . 293
12.1 構(gòu)建TypeScript 項(xiàng)目 .293
12.1.1 項(xiàng)目結(jié)構(gòu) 293
12.1.2 構(gòu)建產(chǎn)物 294
12.1.3 設(shè)置編譯目標(biāo) 295
12.1.4 生成源碼映射 300
12.1.5 項(xiàng)目引用 300
12.1.6 監(jiān)控錯(cuò)誤 303
12.2 在服務(wù)器中運(yùn)行TypeScript .304
12.3 在瀏覽器中運(yùn)行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 類型運(yùn)算符 . 315
附錄B 實(shí)用類型 317
附錄C 限定作用范圍的聲明 . 319
附錄D 為第三方JavaScript 模塊編寫聲明文件的
技巧 321
附錄E 三斜線指令 . 329
附錄F 安全相關(guān)的TSC 編譯器標(biāo)志 . 331
附錄G TSX . 333