
- TypeScript 基礎
- TypeScript - 首頁
- TypeScript - 路線圖
- TypeScript - 概述
- TypeScript - 環境搭建
- TypeScript - 基本語法
- TypeScript vs. JavaScript
- TypeScript - 特性
- TypeScript - 變數
- TypeScript - let & const
- TypeScript - 運算子
- TypeScript 基本型別
- TypeScript - 型別
- TypeScript - 型別註解
- TypeScript - 型別推斷
- TypeScript - 數字
- TypeScript - 字串
- TypeScript - 布林值
- TypeScript - 陣列
- TypeScript - 元組
- TypeScript - 列舉
- TypeScript - any
- TypeScript - never
- TypeScript - 聯合型別
- TypeScript - 字面量型別
- TypeScript - Symbol
- TypeScript - null vs. undefined
- TypeScript - 類型別名
- TypeScript 控制流
- TypeScript - 決策語句
- TypeScript - if 語句
- TypeScript - if else 語句
- TypeScript - 巢狀 if 語句
- TypeScript - switch 語句
- TypeScript - 迴圈
- TypeScript - for 迴圈
- TypeScript - while 迴圈
- TypeScript - do while 迴圈
- TypeScript 函式
- TypeScript - 函式
- TypeScript - 函式型別
- TypeScript - 可選引數
- TypeScript - 預設引數
- TypeScript - 匿名函式
- TypeScript - 函式構造器
- TypeScript - rest 引數
- TypeScript - 引數解構
- TypeScript - 箭頭函式
- TypeScript 介面
- TypeScript - 介面
- TypeScript - 介面擴充套件
- TypeScript 類和物件
- TypeScript - 類
- TypeScript - 物件
- TypeScript - 訪問修飾符
- TypeScript - 只讀屬性
- TypeScript - 繼承
- TypeScript - 靜態方法和屬性
- TypeScript - 抽象類
- TypeScript - 存取器
- TypeScript - 鴨子型別
- TypeScript 高階型別
- TypeScript - 交叉型別
- TypeScript - 型別守衛
- TypeScript - 型別斷言
- TypeScript 型別操作
- TypeScript - 從型別建立型別
- TypeScript - keyof 型別運算子
- TypeScript - typeof 型別運算子
- TypeScript - 索引訪問型別
- TypeScript - 條件型別
- TypeScript - 對映型別
- TypeScript - 模板字面量型別
- TypeScript 泛型
- TypeScript - 泛型
- TypeScript - 泛型約束
- TypeScript - 泛型介面
- TypeScript - 泛型類
- TypeScript 其他
- TypeScript - 三斜槓指令
- TypeScript - 名稱空間
- TypeScript - 模組
- TypeScript - 環境宣告
- TypeScript - 裝飾器
- TypeScript - 型別相容性
- TypeScript - Date 物件
- TypeScript - 迭代器和生成器
- TypeScript - Mixin
- TypeScript - 實用程式型別
- TypeScript - 裝箱和拆箱
- TypeScript - tsconfig.json 檔案
- 從 JavaScript 到 TypeScript
- TypeScript 有用資源
- TypeScript - 快速指南
- TypeScript - 有用資源
- TypeScript - 討論
TypeScript - tsconfig.json 檔案
TypeScript 的 `tsconfig.json` 檔案是一個配置檔案,用於指定編譯器選項。這些編譯器選項用於編譯 TypeScript 程式碼並將其轉換為 JavaScript 程式碼。但是,它也允許開發人員使用 JSON 格式指定專案中使用的更多配置。
`tsconfig.json` 檔案始終位於專案的根目錄中。此檔案包含 JSON 格式的資料。
tsconfig.json 檔案的基本結構
`tsconfig.json` 檔案主要包含以下 5 個屬性,所有屬性都是可選的
- compileOnSave
- compilerOptions
- files
- include
- exclude
如果您在 `tsconfig.json` 檔案中不使用任何這些屬性,則編譯器將使用預設設定。
以下是 `tsconfig.json` 檔案的基本結構。
{ "compileOnSave": true, "compilerOptions": { "target": "es6", "lib": [ "es6", "dom" ], "module": "commonjs" }, "files": [ "app.ts", "base.ts" ], "include": [ "src/**/*" ], "exclude": [ "node_modules", "src/**/*.calc.ts" ] }
在上述檔案中,您可以根據需要新增更多編譯器選項或其他屬性列表中的元素。
讓我們逐一瞭解每個屬性。
compileOnSave 屬性
`compileOnSave` 屬性用於指定是否要在儲存程式碼時立即編譯專案程式碼。`compileOnSave` 屬性的預設值為 `false`。
如果為此屬性使用 `false` 值,則需要手動編譯程式碼。
以下是如何在 `tsconfig.json` 檔案中使用 `compileOnSave` 屬性。
{ "compileOnSave": boolean_value }
compilerOptions 屬性
`compilerOptions` 是 `tsconfig.json` 檔案中廣泛使用的屬性。它用於指定 TypeScript 編譯器編譯程式碼的設定。例如,如果您想在編譯 TypeScript 程式碼時使用特定版本的 JavaScript 或模組,您可以修改 `compilerOptions` 屬性。
以下是一些在 `tsconfig.json` 檔案中使用的常用編譯器選項。
選項 | 描述 |
---|---|
target | 指定輸出 JavaScript 檔案的目標 ECMAScript 版本。“es6”目標為 ECMAScript 2015。 |
experimentalDecorators | 啟用對 ES 裝飾器的實驗性支援,ES 裝飾器是 ECMAScript 標準的第 2 階段提案。 |
lib | 指定要在編譯中包含的庫檔案列表。例如,包含“es6”和“dom”以獲取相關 API。 |
module | 指定專案的模組系統。“commonjs”通常用於 Node.js 專案。 |
esModuleInterop | 啟用與不符合 ES 模組的匯入的相容性,允許從沒有預設匯出的模組匯入預設值。 |
resolveJsonModule | 允許將 .json 檔案作為模組匯入到專案中。 |
strict | 啟用所有嚴格型別檢查選項,提高 TypeScript 中型別檢查的嚴格性和準確性。 |
listFiles | 設定後,編譯器將打印出編譯中包含的檔案列表。 |
outDir | 將輸出結構重定向到指定的目錄。對於將編譯後的檔案放在特定目錄中很有用。 |
outFile | 連線並輸出到單個檔案。如果指定了 outFile,則忽略 outDir。 |
rootDir | 指定輸入檔案的根目錄。對於使用 outDir 控制輸出目錄結構很有用。 |
sourceRoot | 指定編譯器應該查詢 TypeScript 檔案的位置,而不是預設位置。 |
allowJs | 允許與 TypeScript 檔案一起編譯 JavaScript 檔案。在混合使用 JS 和 TS 的專案中很有用。 |
strictNullChecks | 啟用後,編譯器將對您的程式碼執行嚴格的 null 檢查,這有助於防止 null 或 undefined 訪問錯誤。 |
以下是在 `tsconfig.json` 檔案中使用 `compilerOptions` 的常用方法。
{ "compilerOptions": { "target": "es6", "lib": [ "es6", "dom" ], "module": "commonjs" } }
files 屬性
`files` 屬性將檔案列表作為值,以包含在編譯過程中。如果檔案位於根目錄中,您可以直接新增檔名,或者為要包含在編譯過程中的每個檔案新增相對或絕對檔案路徑。
在這裡,我們展示瞭如何在 `tsconfig.json` 檔案中使用 `files` 屬性。
"files": [ "app.ts", "base.ts" ]
include 屬性
`include` 屬性允許開發人員使用萬用字元查詢新增要編譯的 TypeScript 檔案列表。
如果要將所有檔案新增到編譯中,可以使用以下萬用字元查詢。
"include": [ "src/**/*" ]
上述配置添加了 `src` 目錄中的所有檔案。
exclude 屬性
`exclude` 屬性與 `include` 屬性相反。它允許開發人員使用萬用字元查詢從編譯過程中刪除特定檔案。
"exclude": [ "node_modules", "src/**/*.calc.ts" ]
上述配置從編譯過程中刪除了 node 模組和 `calc.ts` 檔案。
常見場景和配置
在這裡,我們解釋了開發人員需要更改 `tsconfig.json` 檔案的常見場景。
定位不同的 ECMAScript 版本
如果要在編譯 TypeScript 程式碼時定位不同的 ECMAScript 版本,可以使用以下配置。在這裡,我們更改了 `compilerOptions` 物件的 `target` 和 `module` 屬性的值。
{ "compilerOptions": { "target": "es6", "module": "es2015" } }
包含 Node.js 型別定義
當您使用 Node.js 時,您可能需要新增型別定義,以下是如何新增它。
{ "compilerOptions": { "module": "commonjs", "target": "es2018", "lib": ["es2018", "dom"] }, "include": [ "src/**/*" ] }
排除測試檔案
有時,開發人員需要從編譯過程中刪除測試檔案。以下是如何使用 `exclude` 屬性刪除特定測試檔案或目錄。
{ "exclude": ["**/*.spec.ts", "**/*.test.ts"] }
對於 TypeScript 開發人員來說,瞭解如何管理 `tsconfig.json` 檔案始終很重要。您可以編輯此檔案以更改編譯程式碼時的模組,新增和刪除編譯過程中的檔案,以及在儲存檔案後進行自動編譯。