呦呦鹿鳴處 書卷彙成川

聯繫我們:
《TypeScript入門與實戰》封面

TypeScript入門與實戰

文件格式: EPUB · MOBI · PDF · TXT

獲取下載鏈接

出版年份:
ISBN: 9787111669722
豆瓣評分: 8.0

標籤

踏入代碼新世界,這本書將是你開啟TypeScript之旅的絕佳指南! **第一站:初探TypeScript的魅力(第1-2章)** 我們將一同揭開TypeScript的神秘面紗,瞭解它為何而生,又將如何顛覆你的編碼方式。從搭建開發環境到編寫你的第一個TypeScript程序,你將親身體驗從0到1的成就感。 **第二站:重溫JavaScript的精髓(第3-4章)** 如果你對JavaScript有所耳聞,或者想打下紮實的基礎,這一篇將帶你回顧JavaScript的核心知識,並探索那些讓它充滿活力的前沿特性。 **第三站:玩轉TypeScript的類型魔法(第5-7章)** 這才是本書的“點睛之筆”!我們將深入TypeScript最引以為傲的類型系統。學會馴服類型,你的代碼將變得前所未有的健壯、可維護,告別那些惱人的運行時錯誤。 **第四站:TypeScript的實戰演練(第8-9章)** 紙上得來終覺淺,絕知此事要躬行。本篇將帶你進入TypeScript的實際應用場景,學習如何高效管理項目配置,並將其無縫集成到你的開發工具中,讓你的開發效率更上一層樓。 **溫馨提示:** 如果你已是JavaScript的老司機,完全可以直接跳到第三篇,直奔TypeScript的核心“類型魔法”。但如果你還想鞏固一下基礎,或者打算系統學習JavaScript,我強烈建議你按順序閱讀,並輔以其他資料,一同探索這門魅力無限的語言。 書中所有代碼都以清晰的等寬字體呈現,並貼心地加上了行號。別錯過彩蛋——所有示例代碼都可以在GitHub上找到(傳送門:https://github.com/tstutorial/code),讓你隨時隨地動手實踐,將所學化為己用! 準備好了嗎?讓我們一起出發,解鎖TypeScript的強大力量,編寫更優雅、更可靠的代碼吧!

前言
第一篇 初識TypeScript
第1章 TypeScript簡介  2
1.1 什麼是TypeScript  2
1.1.1 始於JavaScript,終於JavaScript  3
1.1.2 可選的靜態類型  4
1.1.3 開放與跨平臺  4
1.2 為什麼要使用TypeScript  5
1.2.1 易於發現代碼中的錯誤  5
1.2.2 提高生產力  6
1.2.3 支持JavaScript的最新特性  7
1.3 成功案例  8
1.3.1 Visual Studio Code  8
1.3.2 Angular  9
第2章 快速開始  10
2.1 在線編寫並運行TypeScript  10
2.1.1 Hello World!  11
2.1.2 擴展功能:選擇TypeScript版本  12
2.1.3 擴展功能:TypeScript配置項  12
2.2 本地編寫並運行TypeScript  13
2.2.1 選擇代碼編輯器  13
2.2.2 安裝Visual Studio Code  15
2.2.3 安裝TypeScript  15
2.2.4 創建文件  16
2.2.5 編譯程序  17
2.2.6 運行程序  18
2.2.7 可選步驟:設置默認構建任務  18
第二篇 TypeScript語言概覽
第3章 TypeScript語言基礎  22
3.1 變量  22
3.1.1 變量名  23
3.1.2 變量聲明  23
3.2 註釋  24
3.2.1 單行註釋與多行註釋  25
3.2.2 區域註釋  25
3.3 數據類型  26
3.3.1 Undefined  27
3.3.2 Null  27
3.3.3 Boolean  27
3.3.4 String  27
3.3.5 Number  28
3.3.6 Symbol  28
3.3.7 Object  29
3.4 字面量  29
3.4.1 Null字面量  30
3.4.2 Boolean字面量  30
3.4.3 Number字面量  30
3.4.4 字符串字面量  30
3.4.5 模板字面量  30
3.5 對象  31
3.5.1 對象字面量  31
3.5.2 原型對象  32
3.6 數組  34
3.6.1 數組字面量  34
3.6.2 數組中的元素  34
3.7 函數  34
3.7.1 函數聲明  34
3.7.2 函數表達式  35
3.7.3 箭頭函數  36
第4章 TypeScript語言進階  37
4.1 BigInt  37
4.1.1 創建BigInt  38
4.1.2 BigInt與Number  38
4.2 展開運算符  39
4.2.1 展開數組字面量  39
4.2.2 展開對象字面量  39
4.2.3 展開函數參數  39
4.3 解構  40
4.3.1 數組解構  40
4.3.2 對象解構  40
4.4 可選鏈運算符  40
4.4.1 基礎語法  41
4.4.2 短路求值  41
4.5 空值合併運算符  42
第三篇 TypeScript類型系統
第5章 TypeScript類型基礎  44
5.1 類型註解  44
5.2 類型檢查  45
5.2.1 非嚴格類型檢查  45
5.2.2 嚴格類型檢查  45
5.3 原始類型  46
5.3.1 boolean  46
5.3.2 string  47
5.3.3 number  47
5.3.4 bigint  47
5.3.5 symbol與unique symbol  47
5.3.6 Nullable  50
5.3.7 void  53
5.4 枚舉類型  54
5.4.1 數值型枚舉  55
5.4.2 字符串枚舉  56
5.4.3 異構型枚舉  57
5.4.4 枚舉成員映射  58
5.4.5 常量枚舉成員與計算枚舉成員  58
5.4.6 聯合枚舉類型  62
5.4.7 const枚舉類型  65
5.5 字面量類型  66
5.5.1 boolean字面量類型  66
5.5.2 string字面量類型  67
5.5.3 數字字面量類型  67
5.5.4 枚舉成員字面量類型  68
5.6 單元類型  68
5.7 頂端類型  69
5.7.1 any  69
5.7.2 unknown  71
5.7.3 小結  73
5.8 尾端類型  74
5.8.1 never  74
5.8.2 應用場景  75
5.9 數組類型  76
5.9.1 數組類型定義  76
5.9.2 數組元素類型  78
5.9.3 只讀數組  79
5.10 元組類型  80
5.10.1 元組的定義  80
5.10.2 只讀元組  81
5.10.3 訪問元組中的元素  82
5.10.4 元組類型中的可選元素  83
5.10.5 元組類型中的剩餘元素  83
5.10.6 元組的長度  84
5.10.7 元組類型與數組類型的兼容性  85
5.11 對象類型  85
5.11.1 Object  86
5.11.2 object  89
5.11.3 對象類型字面量  91
5.11.4 弱類型  97
5.11.5 多餘屬性  97
5.12 函數類型  102
5.12.1 常規參數類型  102
5.12.2 可選參數類型  102
5.12.3 默認參數類型  104
5.12.4 剩餘參數類型  105
5.12.5 解構參數類型  106
5.12.6 返回值類型  106
5.12.7 函數類型字面量  108
5.12.8 調用簽名  109
5.12.9 構造函數類型字面量  110
5.12.10 構造簽名  111
5.12.11 調用簽名與構造簽名  111
5.12.12 重載函數  112
5.12.13 函數中this值的類型  118
5.13 接口  119
5.13.1 接口聲明  119
5.13.2 屬性簽名  120
5.13.3 調用簽名  120
5.13.4 構造簽名  121
5.13.5 方法簽名  121
5.13.6 索引簽名  122
5.13.7 可選屬性與方法  125
5.13.8 只讀屬性與方法  126
5.13.9 接口的繼承  127
5.14 類型別名  129
5.14.1 類型別名聲明  129
5.14.2 遞歸的類型別名  130
5.14.3 類型別名與接口  132
5.15 類  133
5.15.1 類的定義  134
5.15.2 成員變量  135
5.15.3 成員函數  138
5.15.4 成員存取器  138
5.15.5 索引成員  140
5.15.6 成員可訪問性  140
5.15.7 構造函數  143
5.15.8 參數成員  144
5.15.9 繼承  145
5.15.10 實現接口  150
5.15.11 靜態成員  151
5.15.12 抽象類和抽象成員  153
5.15.13 this類型  155
5.15.14 類類型  156
第6章 TypeScript類型進階  158
6.1 泛型  158
6.1.1 泛型簡介  159
6.1.2 形式類型參數  160
6.1.3 實際類型參數  161
6.1.4 泛型約束  162
6.1.5 泛型函數  165
6.1.6 泛型接口  167
6.1.7 泛型類型別名  168
6.1.8 泛型類  169
6.2 局部類型  170
6.3 聯合類型  171
6.3.1 聯合類型字面量  171
6.3.2 聯合類型的類型成員  173
6.4 交叉類型  176
6.4.1 交叉類型字面量  176
6.4.2 交叉類型的類型成員  178
6.4.3 交叉類型與聯合類型  180
6.5 索引類型  181
6.5.1 索引類型查詢  182
6.5.2 索引訪問類型  185
6.5.3 索引類型的應用  186
6.6 映射對象類型  187
6.6.1 映射對象類型聲明  187
6.6.2 映射對象類型解析  188
6.6.3 映射對象類型應用  188
6.6.4 同態映射對象類型  190
6.7 條件類型  196
6.7.1 條件類型的定義  196
6.7.2 分佈式條件類型  197
6.7.3 infer關鍵字  199
6.8 內置工具類型  201
6.8.1 Partial<T>  201
6.8.2 Required<T>  202
6.8.3 Readonly<T>  202
6.8.4 Record<K, T>  202
6.8.5 Pick<T, K>  202
6.8.6 Omit<T, K>  203
6.8.7 Exclude<T, U>  203
6.8.8 Extract<T, U>  203
6.8.9 NonNullable<T>  203
6.8.10 Parameters<T>  204
6.8.11 ConstructorParameters<T>  204
6.8.12 ReturnType<T>  204
6.8.13 InstanceType<T>  205
6.8.14 ThisParameterType<T>  205
6.8.15 OmitThisParameter<T>  206
6.8.16 ThisType<T>  206
6.9 類型查詢  206
6.10 類型斷言  207
6.10.1 <T>類型斷言  208
6.10.2 as T類型斷言  208
6.10.3 類型斷言的約束  209
6.10.4 const類型斷言  210
6.10.5 !類型斷言  212
6.11 類型細化  213
6.11.1 類型守衛  214
6.11.2 可辨識聯合類型  225
6.11.3 賦值語句分析  232
6.11.4 基於控制流的類型分析  233
6.11.5 斷言函數  233
第7章 TypeScript類型深入  238
7.1 子類型兼容性  238
7.1.1 類型系統可靠性  239
7.1.2 子類型的基本性質  239
7.1.3 頂端類型與尾端類型  240
7.1.4 原始類型  240
7.1.5 函數類型  241
7.1.6 對象類型  245
7.1.7 泛型  249
7.1.8 聯合類型  250
7.1.9 交叉類型  251
7.2 賦值兼容性  251
7.3 類型推斷  253
7.3.1 常規類型推斷  253
7.3.2 按上下文歸類  255
7.4 類型放寬  256
7.4.1 常規類型放寬  256
7.4.2 字面量類型放寬  257
7.5 命名空間  261
7.5.1 命名空間聲明  262
7.5.2 導出命名空間內的聲明  263
7.5.3 別名導入聲明  265
7.5.4 在多文件中使用命名空間  266
7.5.5 小結  269
7.6 模塊  269
7.6.1 模塊簡史  269
7.6.2 ECMAScript模塊  273
7.6.3 模塊導出  273
7.6.4 模塊導入  276
7.6.5 重命名模塊導入和導出  278
7.6.6 針對類型的模塊導入與導出 280
7.6.7 動態模塊導入  284
7.6.8 --module  285
7.7 外部聲明  286
7.7.1 外部類型聲明  287
7.7.2 外部模塊聲明  292
7.8 使用聲明文件  293
7.8.1 語言內置的聲明文件  293
7.8.2 第三方聲明文件  293
7.8.3 自定義聲明文件  298
7.9 模塊解析  299
7.9.1 相對模塊導入  299
7.9.2 非相對模塊導入  300
7.9.3 模塊解析策略  301
7.9.4 模塊解析策略之Classic  301
7.9.5 模塊解析策略之Node  304
7.9.6 --baseUrl  308
7.9.7 paths  310
7.9.8 rootDirs  312
7.9.9 導入外部模塊聲明  312
7.9.10 --traceResolution  313
7.10 聲明合併  314
7.10.1 接口聲明合併  315
7.10.2 枚舉聲明合併  317
7.10.3 類聲明合併  318
7.10.4 命名空間聲明合併  318
7.10.5 擴充模塊聲明  321
7.10.6 擴充全局聲明  322
第四篇 TypeScript應用
第8章 TypeScript配置管理  324
8.1 編譯器  324
8.1.1 安裝編譯器  325
8.1.2 編譯程序  326
8.2 編譯選項  328
8.2.1 編譯選項風格  328
8.2.2 使用編譯選項  330
8.2.3 嚴格類型檢查  331
8.2.4 編譯選項列表  337
8.3 tsconfig.json  338
8.3.1 使用配置文件  338
8.3.2 編譯選項列表  340
8.3.3 編譯文件列表  342
8.3.4 聲明文件列表  346
8.3.5 繼承配置文件  348
8.4 工程引用  351
8.4.1 使用工程引用  352
8.4.2 工程引用示例  353
8.4.3 --build  354
8.4.4 solution模式  356
8.5 JavaScript類型檢查  357
8.5.1 編譯JavaScript  357
8.5.2 JavaScript類型檢查  358
8.5.3 JSDoc與類型  360
8.6 三斜線指令  363
8.6.1 /// <reference path="" />  364
8.6.2 /// <reference types="" />  366
8.6.3 /// <reference lib="" />  367
第9章 TypeScript項目實踐  371
9.1 TypeScript與Babel  371
9.1.1 Babel  372
9.1.2 TypeScript編譯器  372
9.1.3 實例演示  374
9.1.4 注意事項  380
9.1.5 小結  381
9.2 TypeScript與webpack  381
9.2.1 webpack  381
9.2.2 實例演示  381
9.2.3 小結  385
9.3 TypeScript與ESLint  385
9.3.1 ESLint  386
9.3.2 實例演示  386
9.3.3 集成Visual Studio Code  390
9.3.4 小結  393
9.4 TypeScript與Visual Studio Code  393
9.4.1 代碼格式化  394
9.4.2 組織模塊導入語句  395
9.4.3 代碼導航  395
9.4.4 快速修復  396
9.4.5 重構工具  396
9.4.6 CodeLens  397

《C程序設計語言(中文第二版·新版)》

這部作品由C語言的創始者撰寫,定位為面向初學者的入門介紹書。

查看詳情 →

《了不起的JavaScript工程師》

《了不起的JavaScript工程師:從前端到全端高級進階》講述了開發者使用JavaScript在各種Web開發場景下所需要掌握的重點知識和概念。從最基礎的開發工具講起,再到開發思維方式和前端頁面開發,然後擴展到小程序開發和開發工具的混合應用,再講解前後端交互最常用的網絡協議及API設計,最後講解了...

查看詳情 →

《Python數據結構與算法分析(第2版)》

瞭解數據結構與算法是透徹理解計算機科學的前提。隨著Python日益廣泛的應用,Python程序員需要實現與傳統的面向對象編程語言相似的數據結構與算法。本書是用Python描述數據結構與算法的開山之作,匯聚了作者多年的實戰經驗,向讀者透徹講解在Python環境下,如何通過一系列存儲機制高效地實現各類算...

查看詳情 →

《深入淺出 Vue.js》

本書從源碼層面分析了Vue.js。首先,簡要介紹了Vue.js;然後詳細講解了其內部核心技術“變化偵測”,這裡帶領大家從0到1實現一個簡單的“變化偵測”系統;接著詳細介紹了虛擬DOM技術,其中包括虛擬DOM的原理及其patching算法;緊接著詳細討論了模板編譯技術,其中包括模板解析器的實現原理、優...

查看詳情 →