Ts現在用的越來越多,我感覺是時候總結一波Ts的基礎知識點,畢竟與時代脫節不是我們們程式設計師該做的事,話不多說,直接開整。(注:腦圖已經上傳至雲盤20+腦圖系列中)
![TypeScript.png TypeScript.png](/img/remote/1460000041510008)
一、基礎
![1.png 1.png](/img/remote/1460000041510009)
二、tsconfig.json檔案
![2.png 2.png](/img/remote/1460000041510010)
示例程式碼
{
// include用來指定哪些ts檔案需要被編譯
// **表示任意目錄
// *表示任意檔案(匹配0或多個字元)
// ?匹配一個任意字元
"include": [
"./src/**/*"
],
// 定義需要排除在外的目錄,預設情況下會排除node_modules,bower_components,jspm_packages和<outDir>目錄
"exclude": [],
// 定義被繼承的配置檔案
// "extends": "",
// 指定被編譯的檔案列表
// "files": [],
// 編譯器的選項
"compilerOptions": {
// 設定ts程式碼編譯的目標版本
"target": "es2015",
// 設定編譯後程式碼使用的模組化系統
"module": "amd",
// 用來指定編譯後檔案所在的目錄
"outDir": "./dist",
// 用來將程式碼合併為一個檔案(一般用的不多)
// "outFile": "./dist/app.js",
// 是否對js檔案進行編譯,預設是false
"allowJs": true,
// 是否檢查js程式碼是否符合語法規範,預設是false
"checkJs": true,
// 是否移除註釋,預設是false
"removeComments": false,
// 所有嚴格檢查的總開關
"strict": true,
// 用來設定編譯後的檔案是否使用嚴格模式,預設為false
"alwaysStrict": true,
// 不允許隱式any使用,預設值是false
"noImplicitAny": true,
// 不允許不明確型別的this,預設值是false
"noImplicitThis": true,
// 嚴格的檢查空值,預設為false
"strictNullChecks": true
}
}
三、聯合webpack使用
![3.png 3.png](/img/remote/1460000041510011)
四、型別
![4.png 4.png](/img/remote/1460000041510012)
4.1 型別宣告語法
![4-1.png 4-1.png](/img/remote/1460000041510013)
4.2 型別內容
![4-2.png 4-2.png](/img/remote/1460000041510014)
4.3 object與{}
![4-3.png 4-3.png](/img/remote/1460000041510015)
4.4 Function與(a:xxx)=>xxx
![4-4.png 4-4.png](/img/remote/1460000041510016)
4.5 型別推斷
![4-5.png 4-5.png](/img/remote/1460000041510017)
4.6 型別斷言
![4-6.png 4-6.png](/img/remote/1460000041510018)
五、高階型別
![5.png 5.png](/img/remote/1460000041510019)
六、類
![6.png 6.png](/img/remote/1460000041510020)
6.1 定義類
![6-1.png 6-1.png](/img/remote/1460000041510021)
6.2 屬性
![6-2.png 6-2.png](/img/remote/1460000041510022)
6.3 建構函式constructor
![6-3.png 6-3.png](/img/remote/1460000041510023)
6.4 方法
![6-4.png 6-4.png](/img/remote/1460000041510024)
6.5 修飾符
![6-5.png 6-5.png](/img/remote/1460000041510025)
6.6 存取器
![6-6.png 6-6.png](/img/remote/1460000041510026)
6.7 繼承
![6-7.png 6-7.png](/img/remote/1460000041510027)
七、介面
![7.png 7.png](/img/remote/1460000041510028)
八、泛型
![8.png 8.png](/img/remote/1460000041510029)
九、宣告檔案
![9.png 9.png](/img/remote/1460000041510030)
9.1 為社麼需要宣告檔案
![9-1.png 9-1.png](/img/remote/1460000041510031)
9.2 第三方庫通常兩種型別宣告方式
![9-2.png 9-2.png](/img/remote/1460000041510032)
9.3 什麼情況需要自己訂一宣告檔案
![9-3.png 9-3.png](/img/remote/1460000041510033)
9.4 宣告檔案型別
![9-4.png 9-4.png](/img/remote/1460000041510034)
9.5 宣告檔案基礎語法
![9-5.png 9-5.png](/img/remote/1460000041510035)
參考文獻
- 尚矽谷TypeScript教程
- TypeScript中文文件