使用 CLI
在本地端執行 tsc 會編譯由 tsconfig.json 定義的最接近專案,或者你可以傳入想要的一組檔案 glob 來編譯一組 TypeScript 檔案。當在命令列中指定輸入檔案時,會忽略 tsconfig.json 檔案。
sh# Run a compile based on a backwards look through the fs for a tsconfig.jsontsc# Emit JS for just the index.ts with the compiler defaultstsc index.ts# Emit JS for any .ts files in the folder src, with the default settingstsc src/*.ts# Emit files referenced in with the compiler settings from tsconfig.production.jsontsc --project tsconfig.production.json# Emit d.ts files for a js file with showing compiler options which are booleanstsc index.js --declaration --emitDeclarationOnly# Emit a single .js file from two files via compiler options which take string argumentstsc app.ts util.ts --target esnext --outfile index.js
編譯器選項
如果您正在尋找有關 tsconfig 中編譯器選項的更多資訊,請查看 TSConfig 參考
CLI 命令
| 旗標 | 類型 | |
|---|---|---|
--all |
|
|
|
顯示所有編譯器選項。 | ||
--generateTrace |
|
|
|
產生事件追蹤和類型清單。 | ||
--help |
|
|
|
提供 CLI 說明的當地資訊。 | ||
--init |
|
|
|
初始化 TypeScript 專案並建立 tsconfig.json 檔案。 | ||
--listFilesOnly |
|
|
|
列印編譯一部分的檔案名稱,然後停止處理。 | ||
--locale |
|
|
|
設定 TypeScript 訊息的語言。這不會影響發射。 | ||
--project |
|
|
|
根據其組態檔的路徑編譯專案,或編譯具有「tsconfig.json」的資料夾。 | ||
--showConfig |
|
|
|
列印最後的組態,而不是建置。 | ||
--version |
|
|
|
列印編譯器的版本。 | ||
建置選項
| 旗標 | 類型 | |
|---|---|---|
--build |
|
|
|
建置一個或多個專案及其相依性(如果過期) | ||
--clean |
|
|
|
刪除所有專案的輸出。 | ||
--dry |
|
|
|
顯示將建置的內容(或如果使用「--clean」指定,則顯示將刪除的內容) | ||
--force |
|
|
|
建置所有專案,包括看似最新的專案。 | ||
--verbose |
|
|
|
啟用詳細記錄。 | ||
監控選項
| 旗標 | 類型 | |
|---|---|---|
--excludeDirectories |
|
|
|
從監控程序中移除目錄清單。 | ||
--excludeFiles |
|
|
|
從監控模式的處理中移除檔案清單。 | ||
--fallbackPolling |
|
|
|
如果系統用盡原生檔案監控程式,請指定監控程式應使用哪種方法。 | ||
--synchronousWatchDirectory |
|
|
|
在原生不支援遞迴監控的平台上,同步呼叫回呼並更新目錄監控程式的狀態。 | ||
--watch |
|
|
|
監控輸入檔案。 | ||
--watchDirectory |
|
|
|
指定在缺乏遞迴檔案監控功能的系統上監控目錄的方式。 | ||
--watchFile |
|
|
|
指定 TypeScript 監控模式運作的方式。 | ||
編譯器旗標
| 旗標 | 類型 | 預設值 |
|---|---|---|
--allowArbitraryExtensions |
|
|
|
啟用匯入任何副檔名的檔案,只要有宣告檔即可。 | ||
--allowImportingTsExtensions |
|
|
|
允許匯入包含 TypeScript 檔案副檔名的檔案。 | ||
--allowJs |
|
|
|
允許 JavaScript 檔案成為程式的一部分。使用 | ||
--allowSyntheticDefaultImports |
|
如果啟用 |
|
當模組沒有預設匯出時,允許 'import x from y'。 | ||
--allowUmdGlobalAccess |
|
|
|
允許從模組存取 UMD 全域變數。 | ||
--allowUnreachableCode |
|
|
|
停用無法到達程式碼的錯誤回報。 | ||
--allowUnusedLabels |
|
|
|
停用未使用的標籤的錯誤回報。 | ||
--alwaysStrict |
|
如果 |
|
確保總是發出 'use strict'。 | ||
--assumeChangesOnlyAffectDirectDependencies |
|
|
|
讓使用 | ||
--baseUrl |
|
|
|
指定基本目錄以解析裸指定的模組名稱。 | ||
--charset |
|
|
|
不再支援。在早期版本中,手動設定用於讀取檔案的文字編碼。 | ||
--checkJs |
|
|
|
在類型檢查的 JavaScript 檔案中啟用錯誤回報。 | ||
--composite |
|
|
|
啟用約束,允許 TypeScript 專案與專案參考一起使用。 | ||
--customConditions |
|
|
|
在解析匯入時,除了解析器特定的預設值外,還要設定的條件。 | ||
--declaration |
|
如果 |
|
從專案中的 TypeScript 和 JavaScript 檔案產生 .d.ts 檔案。 | ||
--declarationDir |
|
|
|
指定產生宣告檔案的輸出目錄。 | ||
--declarationMap |
|
|
|
為 d.ts 檔案建立原始碼對應。 | ||
--diagnostics |
|
|
|
在建置後輸出編譯器效能資訊。 | ||
--disableReferencedProjectLoad |
|
|
|
減少 TypeScript 自動載入的專案數量。 | ||
--disableSizeLimit |
|
|
|
移除 TypeScript 語言伺服器中 JavaScript 檔案總原始碼大小的 20mb 上限。 | ||
--disableSolutionSearching |
|
|
|
在編輯時讓專案退出多專案參考檢查。 | ||
--disableSourceOfProjectReferenceRedirect |
|
|
|
參照複合專案時,停用偏好來源檔案而非宣告檔。 | ||
--downlevelIteration |
|
|
|
發射更相容,但冗長且效能較差的 JavaScript 以進行反覆運算。 | ||
--emitBOM |
|
|
|
在輸出檔案開頭發射 UTF-8 位元組順序標記 (BOM)。 | ||
--emitDeclarationOnly |
|
|
|
僅輸出 d.ts 檔案,而不輸出 JavaScript 檔案。 | ||
--emitDecoratorMetadata |
|
|
|
在來源檔案中發射已裝飾宣告的設計類型中繼資料。 | ||
--esModuleInterop |
|
如果 |
|
發射其他 JavaScript 以簡化支援匯入 CommonJS 模組。這會啟用 | ||
--exactOptionalPropertyTypes |
|
|
|
將選擇性屬性類型解釋為已寫入,而不是新增 | ||
--experimentalDecorators |
|
|
|
啟用對 TC39 階段 2 草稿裝飾器的實驗性支援。 | ||
--explainFiles |
|
|
|
列印編譯期間讀取的檔案,包括包含原因。 | ||
--extendedDiagnostics |
|
|
|
在建置後輸出更詳細的編譯器效能資訊。 | ||
--forceConsistentCasingInFileNames |
|
|
|
確保匯入中的大小寫正確。 | ||
--generateCpuProfile |
|
|
|
發射編譯器執行期間的 v8 CPU 剖析以進行偵錯。 | ||
--importHelpers |
|
|
|
允許從 tslib 匯入輔助函式一次,而不是每個檔案都包含。 | ||
--importsNotUsedAsValues |
|
|
|
指定僅用於類型的匯入的發射/檢查行為。 | ||
--incremental |
|
如果 |
|
儲存 .tsbuildinfo 檔案以允許專案的增量編譯。 | ||
--inlineSourceMap |
|
|
|
將原始碼檔案包含在發出的 JavaScript 中。 | ||
--inlineSources |
|
|
|
將原始碼包含在發出的 JavaScript 中的原始碼中。 | ||
--isolatedModules |
|
|
|
確保每個檔案都能安全地轉譯,而不用依賴其他匯入。 | ||
--jsx |
|
|
|
指定要產生的 JSX 程式碼。 | ||
--jsxFactory |
|
|
|
指定在目標為 React JSX 發出時使用的 JSX 工廠函式,例如「React.createElement」或「h」。 | ||
--jsxFragmentFactory |
|
|
|
指定在目標為 React JSX 發出時用於片段的 JSX 片段參考,例如「React.Fragment」或「Fragment」。 | ||
--jsxImportSource |
|
|
|
使用 | ||
--keyofStringsOnly |
|
|
|
讓 keyof 僅傳回字串,而不是字串、數字或符號。舊選項。 | ||
--lib |
|
|
|
指定一組描述目標執行時間環境的已綑綁程式庫宣告檔案。 | ||
--listEmittedFiles |
|
|
|
在編譯後列印發出檔案的名稱。 | ||
--listFiles |
|
|
|
列印編譯期間讀取的所有檔案。 | ||
--mapRoot |
|
|
|
指定偵錯程式應該在何處找到對應檔案,而不是在產生位置。 | ||
--maxNodeModuleJsDepth |
|
|
|
指定用於檢查來自 | ||
--module |
|
如果 |
|
指定要產生的模組程式碼。 | ||
--moduleDetection |
|
「自動」:將包含匯入、匯出、import.meta、jsx(使用 jsx:react-jsx)或 esm 格式(使用 module:node16+)的檔案視為模組。 |
|
指定用於偵測檔案是腳本或模組的方法。 | ||
--moduleResolution |
|
如果 |
|
指定 TypeScript 從給定的模組指定符號中查詢檔案的方式。 | ||
--moduleSuffixes |
|
|
|
解析模組時要搜尋的檔案名稱字尾清單。 | ||
--newLine |
|
平台特定。 |
|
設定發射檔案的新行字元。 | ||
--noEmit |
|
|
|
停用從編譯中發射檔案。 | ||
--noEmitHelpers |
|
|
|
停用在編譯輸出中產生自訂的輔助函數,例如 | ||
--noEmitOnError |
|
|
|
如果報告任何類型檢查錯誤,則停用發射檔案。 | ||
--noErrorTruncation |
|
|
|
停用在錯誤訊息中截斷類型。 | ||
--noFallthroughCasesInSwitch |
|
|
|
啟用 switch 陳述式中穿透案例的錯誤報告。 | ||
--noImplicitAny |
|
如果 |
|
啟用對具有隱含 | ||
--noImplicitOverride |
|
|
|
確保衍生類別中的覆寫成員標記有覆寫修飾詞。 | ||
--noImplicitReturns |
|
|
|
啟用對函數中未明確回傳的程式碼路徑的錯誤報告。 | ||
--noImplicitThis |
|
如果 |
|
當 | ||
--noImplicitUseStrict |
|
|
|
停用在發出的 JavaScript 檔案中加入 'use strict' 指令。 | ||
--noLib |
|
|
|
停用包含任何函式庫檔案,包括預設的 lib.d.ts。 | ||
--noPropertyAccessFromIndexSignature |
|
|
|
強制使用索引存取器來存取使用索引類型宣告的鍵。 | ||
--noResolve |
|
|
|
不允許 | ||
--noStrictGenericChecks |
|
|
|
停用函式類型中泛型簽章的嚴格檢查。 | ||
--noUncheckedIndexedAccess |
|
|
|
使用索引存取時,將 | ||
--noUnusedLocals |
|
|
|
當未讀取區域變數時,啟用錯誤回報。 | ||
--noUnusedParameters |
|
|
|
當未讀取函式參數時,引發錯誤。 | ||
--out |
|
|
|
已棄用的設定。請改用 | ||
--outDir |
|
|
|
指定所有發出檔案的輸出資料夾。 | ||
--outFile |
|
|
|
指定將所有輸出組合成一個 JavaScript 檔案的檔案。如果 | ||
--paths |
|
|
|
指定一組將輸入重新對應到其他查詢位置的項目。 | ||
--plugins |
|
|
|
指定要包含的語言服務外掛程式清單。 | ||
--preserveConstEnums |
|
如果 |
|
停用在產生的程式碼中清除 | ||
--preserveSymlinks |
|
|
|
停用將符號連結解析為其真實路徑。這與 node 中的相同旗標相關。 | ||
--preserveValueImports |
|
|
|
保留 JavaScript 輸出中未使用的已匯入值,否則這些值將會被移除。 | ||
--preserveWatchOutput |
|
|
|
停用在監控模式下清除主控台。 | ||
--pretty |
|
|
|
在 TypeScript 的輸出中啟用色彩和格式化,以讓編譯器錯誤更容易閱讀。 | ||
--reactNamespace |
|
|
|
指定為 | ||
--removeComments |
|
|
|
停用發射註解。 | ||
--resolveJsonModule |
|
|
|
啟用匯入 .json 檔案。 | ||
--resolvePackageJsonExports |
|
當 |
|
在解析套件匯入時使用 package.json 的「exports」欄位。 | ||
--resolvePackageJsonImports |
|
當 |
|
在解析匯入時使用 package.json 的「imports」欄位。 | ||
--rootDir |
|
從輸入檔案清單中計算。 |
|
指定來源檔案中的根資料夾。 | ||
--rootDirs |
|
從輸入檔案清單中計算。 |
|
允許在解析模組時將多個資料夾視為一個資料夾。 | ||
--skipDefaultLibCheck |
|
|
|
略過類型檢查隨 TypeScript 附帶的 .d.ts 檔案。 | ||
--skipLibCheck |
|
|
|
略過類型檢查所有 .d.ts 檔案。 | ||
--sourceMap |
|
|
|
為發射的 JavaScript 檔案建立原始碼對應檔。 | ||
--sourceRoot |
|
|
|
指定偵錯程式尋找參考原始碼的根路徑。 | ||
--strict |
|
|
|
啟用所有嚴格類型檢查選項。 | ||
--strictBindCallApply |
|
如果 |
|
檢查 | ||
--strictFunctionTypes |
|
如果 |
|
在指定函式時,檢查以確保參數和回傳值是子類型相容的。 | ||
--strictNullChecks |
|
如果 |
|
在類型檢查時,考量 | ||
--strictPropertyInitialization |
|
如果 |
|
檢查在建構函式中宣告但未設定的類別屬性。 | ||
--stripInternal |
|
|
|
停用發出在其 JSDoc 註解中具有 | ||
--suppressExcessPropertyErrors |
|
|
|
在建立物件文字期間停用報告多餘的屬性錯誤。 | ||
--suppressImplicitAnyIndexErrors |
|
|
|
在索引缺少索引簽章的物件時,抑制 | ||
--target |
|
|
|
設定發出 JavaScript 的 JavaScript 語言版本,並包含相容的函式庫宣告。 | ||
--traceResolution |
|
|
|
記錄在 | ||
--tsBuildInfoFile |
|
|
|
用於儲存 | ||
--typeRoots |
|
|
|
指定多個資料夾,其作用類似於 | ||
--types |
|
|
|
指定要包含的類型套件名稱,而無須在來源檔案中參照。 | ||
--useDefineForClassFields |
|
如果 |
|
發出符合 ECMAScript 標準的類別欄位。 | ||
--useUnknownInCatchVariables |
|
如果 |
|
將預設的 catch 子句變數設為 | ||
--verbatimModuleSyntax |
|
|
|
不要轉換或省略任何未標示為僅限類型的匯入或匯出,確保它們以根據「模組」設定編寫在輸出檔案的格式中。 | ||
相關
- 每個選項都在 TSConfig 參考 中有詳細說明。
- 瞭解如何使用
tsconfig.json檔案。 - 瞭解如何在 MSBuild 專案 中工作。