tsconfig.json配置詳解


 

前言

由於開發ts的項目經常要配置tsconfig.json,所以自己整理了一份tsconfig.json文件,方便以后查閱~
cmd-markdown-logo

compilerOptions編譯選項

1 target用於指定編譯之后的版本目錄

"target": "es5", 

2 module用來指定要使用的模板標准

"module": "commonjs", 

3 lib用於指定要包含在編譯中的庫文件

"lib":[
  "es6", "dom" ],

4 allowJs用來指定是否允許編譯JS文件,默認false,即不編譯JS文件

"allowJs": true,

5 checkJs用來指定是否檢查和報告JS文件中的錯誤,默認false

"checkJs": true, 

6 指定jsx代碼用於的開發環境:'preserve','react-native',or 'react

"jsx": "preserve", 

7 declaration用來指定是否在編譯的時候生成相的d.ts聲明文件,如果設為true,編譯每個ts文件之后會生成一個js文件和一個聲明文件,但是declaration和allowJs不能同時設為true

"declaration": true,

8 declarationMap用來指定編譯時是否生成.map文件

"declarationMap": true,

9 socuceMap用來指定編譯時是否生成.map文件

"sourceMap": true,

10 outFile用於指定輸出文件合並為一個文件,只有設置module的值為amd和system模塊時才支持這個配置

"outFile": "./",

11 outDir用來指定輸出文件夾,值為一個文件夾路徑字符串,輸出的文件都將放置在這個文件夾

"outDir": "./",

12 rootDir用來指定編譯文件的根目錄,編譯器會在根目錄查找入口文件

"rootDir": "./",

13 composite是否編譯構建引用項目

"composite": true, 

14 removeComments用於指定是否將編譯后的文件注釋刪掉,設為true的話即刪除注釋,默認為false

"removeComments": true,

15 noEmit不生成編譯文件

"noEmit": true, 

16 importHelpers指定是否引入tslib里的復制工具函數,默認為false

"importHelpers": true,

17 當target為"ES5"或"ES3"時,為"for-of" "spread"和"destructuring"中的迭代器提供完全支持

"downlevelIteration": true, 

18 isolatedModules指定是否將每個文件作為單獨的模塊,默認為true,他不可以和declaration同時設定

"isolatedModules": true,

19 strict用於指定是否啟動所有類型檢查,如果設為true這回同時開啟下面這幾個嚴格檢查,默認為false

"strict": true,

20 noImplicitAny如果我們沒有一些值設置明確類型,編譯器會默認認為這個值為any類型,如果將noImplicitAny設為true,則如果沒有設置明確的類型會報錯,默認值為false

"noImplicitAny": true,

21 strictNullChecks當設為true時,null和undefined值不能賦值給非這兩種類型的值,別的類型的值也不能賦給他們,除了any類型,還有個例外就是undefined可以賦值給void類型

"strictNullChecks": true,

22 strictFunctionTypes用來指定是否使用函數參數雙向協變檢查

"strictFunctionTypes": true,

23 strictBindCallApply設為true后對bind、call和apply綁定的方法的參數的檢測是嚴格檢測

"strictBindCallApply": true,

24 strictPropertyInitialization設為true后會檢查類的非undefined屬性是否已經在構造函數里初始化,如果要開啟這項,需要同時開啟strictNullChecks,默認為false

"strictPropertyInitialization": true,

25 當this表達式的值為any類型的時候,生成一個錯誤

"noImplicitThis": true,

26 alwaysStrict指定始終以嚴格模式檢查每個模塊,並且在編譯之后的JS文件中加入"use strict"字符串,用來告訴瀏覽器該JS為嚴格模式

"alwaysStrict": true, 

27 noUnusedLocals用於檢查是否有定義了但是沒有使用變量,對於這一點的檢測,使用ESLint可以在你書寫代碼的時候做提示,你可以配合使用,他的默認值為false

"noUnusedLocals": true, 

28 noUnusedParameters用於檢測是否在函數中沒有使用的參數

"noUnusedParameters": true,

29 noImplicitReturns用於檢查函數是否有返回值,設為true后,如果函數沒有返回值則會提示,默認為false

"noImplicitReturns": true,

30 noFallthroughCasesInSwitch用於檢查switch中是否有case沒有使用break跳出switch,默認為false

"noFallthroughCasesInSwitch": true, 

31 moduleResolution用於選擇模塊解析策略,有"node"和"classic"兩種類型

"moduleResolution": "node",

32 baseUrl用於設置解析非相對模塊名稱的基本目錄,相對模塊不會受到baseUrl的影響

"baseUrl": "./", 

33 paths用於設置模塊名到基於baseUrl的路徑映射

  "paths": {
      "*":["./node_modules/@types", "./typings/*"] },

34 rootDirs可以指定一個路徑列表,在構建時編譯器會將這個路徑中的內容都放到一個文件夾中

"rootDirs": [], 

35 typeRoots用來指定聲明文件或文件夾的路徑列表,如果指定了此項,則只有在這里列出的聲明文件才會被加載

"typeRoots": [],

36 types用於指定需要包含的模塊,只有在這里列出的模塊的聲明文件才會被加載

"types": [], 

37 allowSyntheticDefaultImports用來指定允許從沒有默認導出的模塊中默認導入

"allowSyntheticDefaultImports": true,

38 esModuleInterop通過導入內容創建命名空間,實現CommonJS和ES模塊之間的互操作性

"esModuleInterop": true, 

39 不把符號鏈接解析為真實路徑,具體可以了解下webpack和node.js的symlink相關知識

"preserveSymlinks": true, 

40 sourceRoot用於指定調試器應該找到TypeScript文件而不是源文件的位置,這個值會被寫進.map文件里

"sourceRoot": "", 

41 mapRoot用於指定調試器找到映射文件而非生成文件的位置,指定map文件的根路徑,該選項會影響.map文件中的sources屬性

"mapRoot": "",

42 inlineSourceMap指定是否將map文件內容和js文件編譯在一個同一個js文件中,如果設為true,則map的內容會以//#soureMappingURL=開頭,然后接base64字符串的形式插入在js文件底部

"inlineSourceMap": true, 

43 inlineSources用於指定是否進一步將ts文件的內容也包含到輸出文件中

"inlineSources": true, 

44 experimentalDecorators用於指定是否啟用實驗性的裝飾器特性

"experimentalDecorators": true,

45 emitDecoratorMetadata用於指定是否為裝上去提供元數據支持,關於元數據,也是ES6的新標准,可以通過Reflect提供的靜態方法獲取元數據,如果需要使用Reflect的一些方法,需要引用ES2015.Reflect這個庫

"emitDecoratorMetadata": true,

include也可以指定要編譯的路徑列表

"include":[],

files可以配置一個數組列表

 "files":[],

exclude表示要排除的,不編譯的文件,它也可以指定一個列表,規則和include一樣,可以是文件可以是文件夾,可以是相對路徑或絕對路徑,可以使用通配符

"exclude":[]

extends可以通過指定一個其他的tsconfig.json文件路徑,來繼承這個配置文件里的配置,繼承來的文件的配置會覆蓋當前文件定義的配置

"extends":""

compileOnSave如果設為true,在我們編輯了項目文件保存的時候,編輯器會根據tsconfig.json的配置更新重新生成文本,不過這個編輯器支持

"compileOnSave":true

一個對象數組,指定要引用的項目

"references":[]

最后

如果本文對你有幫助得話,給本文點個贊❤️❤️❤️

歡迎大家加入,一起學習前端,共同進步!


免責聲明!

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



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