tsconfig.json 為 TypeScript 編譯器的設定檔,用來配置 TypeScript 編譯器的行為,簡單說明設定檔內容
環境安裝
產生 tsconfig.json 檔案
|
設定說明
compilerOptions
物件,定義編譯器的行為
| 屬性 | 介紹 | 預設值 | 可帶入值 |
|---|---|---|---|
| target | 欲編譯的 JavaScript 版本 | es2016 | ES3、ES5、ES6/ES2015、ES2016、ES2017、ES2018、ES2019、ES2020、ES2021 或 ESNext |
| lib | 編譯器可以使用的標準庫 | 空值 | ES5、ES6、ES2015、ES2016、ES2017、ES2018、ES2019、ES2020、ES2021、ESNext、DOM、DOM.Iterable、WebWorker、ScriptHost… |
| jsx | 支援使用 JSX 語法 | preserve | preserve、react、react-jsx |
| module | 生成的模組格式 | commonjs | monJS、AMD、SystemJS、UMD、ES6、ES2015 或 ESNext |
| rootDir | 編譯時的根目錄 | 空值 | 絕對路徑、相對路徑 |
| outDir | 編譯後檔案存放位置 | 空值 | 絕對路徑、相對路徑 |
| baseUrl | 模組解析的根目錄 | . | 絕對路徑、相對路徑 |
| paths | 定義模組的路徑別名 | 空物件 | 物件 |
| allowJs | 是否允許編譯 JavaScript 文件 | false | boolean |
| checkJs | 是否檢查 JavaScript 文件型別 | false | boolean |
| declaration | 是否生成相對應的裝飾(.d.ts)文件 | false | boolean |
| sourceMap | 是否生成相對應的 .map 文件 | false | boolean |
| outFile | 編譯生成的 JavaScript 代碼合併到一個文件中 | 空值 | 絕對路徑、相對路徑 |
| removeComments | 是否移除註解 | false | boolean |
| noEmit | 是否不生成編譯後的 JavaScript 文件 | false | boolean |
| strict | 是否啟用所有嚴格類型檢查模式,等於noImplicitAny、noImplicitThis、alwaysStrict、strictBindCallApply、strictNullChecks、strictFunctionTypes 和 strictPropertyInitialization的設定為true | false | boolean |
| noImplicitAny | 是否禁止 any 型別 | false | boolean |
| noImplicitThis | 是否禁止 this 關鍵字隱式型別為 any | false | boolean |
| alwaysStrict | 是否在輸出文件中包含 ‘use strict’ | false | boolean |
| strictBindCallApply | 是否在函數 bind、call、apply 的調用中檢查參數的類型符合函數的期望類型 | false | boolean |
| strictNullChecks | 是否開啟嚴格的空值檢查(null 和 undefined) | false | boolean |
| strictFunctionTypes | 函數類型參數的參數和返回值是否精確匹配 | false | boolean |
| strictPropertyInitialization | 類成員是否進行初始化 | false | boolean |
| experimentalDecorators | 是否使用實驗性裝飾器語法 | false | boolean |
| emitDecoratorMetadata | 如果有使用裝飾器,是否要生成裝飾器數據 | false | boolean |
| jsxFactory | 指定使用的 JSX 工廠函數(TS 4.1+) | 空值 | 自訂 |
| noLib | 編譯後的代碼是否排除 TypeScript 標準庫的所有宣告文件 | false | boolean |
| esModuleInterop | 是否兼容 CommonJS module | false | boolean |
| preserveSymlinks | 是否保留符號連接 | false | boolean |
| skipLibCheck | 是否跳過標準庫檢查 | false | boolean |
| noEmitOnError | 編譯出錯是否停止編譯檔案 | false | boolean |
files
指定欲編譯 TypeScript 檔案,陣列,沒有定義此屬性預設為根目錄下所有 .ts 及 .tsx 檔案,可以使用絕對路徑、相對路徑
|
include & exclude
陣列,include 指定欲編譯 TypeScript 檔案,exclude 指定不要被編譯 TypeScript 檔案
可以輸入編譯的檔案、資料夾或者通配符模式(wildcard character)
|
files、include、exclude 優先權:
files > include > exclude
- files 優先度最高,files 指定的檔案不會被 exclude 排除
- include 包含的檔案,可以透過 exclude 進行過濾
- 同時寫 files 跟 include,相符的檔案與資料夾都會被編譯
extends
字串,使用其他 tsconfig.json 檔案作為基礎,並覆寫或是擴充設定,可以使用絕對路徑、相對路徑
|
參考資源:
Nuxt3 入門:打造 SSR 專案
評論