tsconfig.json詳解


tsconfig.json 的作⽤

  • ⽤於標識 TypeScript 項⽬的根路徑;
  • ⽤於配置 TypeScript 編譯器;
  • ⽤於指定編譯的⽂件。

tsconfig.json 重要字段

  • files - 設置要編譯的⽂件的名稱;
  • include - 設置需要進⾏編譯的⽂件,⽀持路徑模式匹配;
  • exclude - 設置⽆需進⾏編譯的⽂件,⽀持路徑模式匹配;
  • compilerOptions - 設置與編譯流程相關的選項。

compilerOptions 選項

compilerOptions ⽀持很多選項,常⻅的有 baseUrltargetmoduleResolutionlib 等。
compilerOptions 每個選項的詳細說明如下:

{
"compilerOptions": {
  /* 基本選項 */
  "target": "es5", // 指定 ECMAScript ⽬標版本: 'ES3'(default), 'ES5', 'ES6'/'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'
  "module": "commonjs", // 指定使⽤模塊: 'commonjs', 'amd',
  'system', 'umd' or 'es2015'
  "lib": [], // 指定要包含在編譯中的庫⽂件
  "allowJs": true, // 允許編譯 javascript ⽂件
  "checkJs": true, // 報告 javascript ⽂件中的錯誤
  "jsx": "preserve", // 指定 jsx 代碼的⽣成: 'preserve',
  'react-native', or 'react'
  "declaration": true, // ⽣成相應的 '.d.ts' ⽂件
  "sourceMap": true, // ⽣成相應的 '.map' ⽂件
  "outFile": "./", // 將輸出⽂件合並為⼀個⽂件
  "outDir": "./", // 指定輸出⽬錄
  "rootDir": "./", // ⽤來控制輸出⽬錄結構 --outDir.
  "removeComments": true, // 刪除編譯后的所有的注釋
  "noEmit": true, // 不⽣成輸出⽂件
  "importHelpers": true, // 從 tslib 導⼊輔助⼯具函數
  "isolatedModules": true, // 將每個⽂件做為單獨的模塊 (與
  'ts.transpileModule' 類似).
  /* 嚴格的類型檢查選項 */
  "strict": true, // 啟⽤所有嚴格類型檢查選項
  "noImplicitAny": true, // 在表達式和聲明上有隱含的 any類型時報錯
  "strictNullChecks": true, // 啟⽤嚴格的 null 檢查
  "noImplicitThis": true, // 當 this 表達式值為 any 類型的時候,⽣
  成⼀個錯誤
  "alwaysStrict": true, // 以嚴格模式檢查每個模塊,並在每個⽂件⾥加
  ⼊ 'use strict'
  /* 額外的檢查 */
  "noUnusedLocals": true, // 有未使⽤的變量時,拋出錯誤
  "noUnusedParameters": true, // 有未使⽤的參數時,拋出錯誤
  "noImplicitReturns": true, // 並不是所有函數⾥的代碼都有返回值時,拋出
  錯誤
  "noFallthroughCasesInSwitch": true, // 報告 switch 語句的 fallthrough 錯
  誤。(即,不允許 switch 的 case 語句貫穿)
  /* 模塊解析選項 */
  "moduleResolution": "node", // 選擇模塊解析策略: 'node' (Node.js)
  or 'classic' (TypeScript pre-1.6)
  "baseUrl": "./", // ⽤於解析⾮相對模塊名稱的基⽬錄
  "paths": {}, // 模塊名到基於 baseUrl 的路徑映射的列表
  "rootDirs": [], // 根⽂件夾列表,其組合內容表示項⽬運⾏時的
  結構內容
  "typeRoots": [], // 包含類型聲明的⽂件列表
  "types": [], // 需要包含的類型聲明⽂件名列表
  "allowSyntheticDefaultImports": true, // 允許從沒有設置默認導出的模塊中默認導⼊。
  /* Source Map Options */
  "sourceRoot": "./", // 指定調試器應該找到 TypeScript ⽂件⽽
  不是源⽂件的位置
  "mapRoot": "./", // 指定調試器應該找到映射⽂件⽽不是⽣成⽂件
  的位置
  "inlineSourceMap": true, // ⽣成單個 soucemaps ⽂件,⽽不是將
  sourcemaps ⽣成不同的⽂件
  "inlineSources": true, // 將代碼與 sourcemaps ⽣成到⼀個⽂件
  中,要求同時設置了 --inlineSourceMap 或 --sourceMap 屬性
  /* 其他選項 */
  "experimentalDecorators": true, // 啟⽤裝飾器
  "emitDecoratorMetadata": true // 為裝飾器提供元數據的⽀持
  }
}

以上參考《重學ts-v1.0》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM