開發(fā)typescript項目tsconfig.json配置及選項使用解析
前言
由于開發(fā)ts的項目經(jīng)常要配置tsconfig.json,所以自己整理了一份tsconfig.json文件,方便以后查閱~

compilerOptions編譯選項
target用于指定編譯之后的版本目錄
"target": "es5",
module用來指定要使用的模板標準
"module": "commonjs",
lib用于指定要包含在編譯中的庫文件
"lib":[ "es6", "dom" ],
allowJs用來指定是否允許編譯JS文件,默認false,即不編譯JS文件
"allowJs": true,
checkJs用來指定是否檢查和報告JS文件中的錯誤,默認false
"checkJs": true,
指定jsx代碼用于的開發(fā)環(huán)境:'preserve','react-native',or 'react
"jsx": "preserve",
declaration用來指定是否在編譯的時候生成相的d.ts聲明文件,如果設(shè)為true,編譯每個ts文件之后會生成一個js文件和一個聲明文件,但是declaration和allowJs不能同時設(shè)為true
"declaration": true,
declarationMap用來指定編譯時是否生成.map文件
"declarationMap": true,
socuceMap用來指定編譯時是否生成.map文件
"sourceMap": true,
outFile用于指定輸出文件合并為一個文件,只有設(shè)置module的值為amd和system模塊時才支持這個配置
"outFile": "./",
outDir用來指定輸出文件夾,值為一個文件夾路徑字符串,輸出的文件都將放置在這個文件夾
"outDir": "./",
rootDir用來指定編譯文件的根目錄,編譯器會在根目錄查找入口文件
"rootDir": "./",
composite是否編譯構(gòu)建引用項目
"composite": true,
removeComments用于指定是否將編譯后的文件注釋刪掉,設(shè)為true的話即刪除注釋,默認為false
"removeComments": true,
noEmit不生成編譯文件
"noEmit": true,
importHelpers指定是否引入tslib里的復(fù)制工具函數(shù),默認為false
"importHelpers": true,
當target為"ES5"或"ES3"時,為"for-of" "spread"和"destructuring"中的迭代器提供完全支持
"downlevelIteration": true,
isolatedModules指定是否將每個文件作為單獨的模塊,默認為true,他不可以和declaration同時設(shè)定
"isolatedModules": true,
strict用于指定是否啟動所有類型檢查,如果設(shè)為true這回同時開啟下面這幾個嚴格檢查,默認為false
"strict": true,
noImplicitAny如果我們沒有一些值設(shè)置明確類型,編譯器會默認認為這個值為any類型,如果將noImplicitAny設(shè)為true,則如果沒有設(shè)置明確的類型會報錯,默認值為false
"noImplicitAny": true,
strictNullChecks當設(shè)為true時,null和undefined值不能賦值給非這兩種類型的值,別的類型的值也不能賦給他們,除了any類型,還有個例外就是undefined可以賦值給void類型
"strictNullChecks": true,
strictFunctionTypes用來指定是否使用函數(shù)參數(shù)雙向協(xié)變檢查
"strictFunctionTypes": true,
strictBindCallApply設(shè)為true后對bind、call和apply綁定的方法的參數(shù)的檢測是嚴格檢測
"strictBindCallApply": true,
strictPropertyInitialization設(shè)為true后會檢查類的非undefined屬性是否已經(jīng)在構(gòu)造函數(shù)里初始化,如果要開啟這項,需要同時開啟strictNullChecks,默認為false
"strictPropertyInitialization": true,
當this表達式的值為any類型的時候,生成一個錯誤
"noImplicitThis": true,
alwaysStrict指定始終以嚴格模式檢查每個模塊,并且在編譯之后的JS文件中加入"use strict"字符串,用來告訴瀏覽器該JS為嚴格模式
"alwaysStrict": true,
noUnusedLocals用于檢查是否有定義了但是沒有使用變量,對于這一點的檢測,使用ESLint可以在你書寫代碼的時候做提示,你可以配合使用,他的默認值為false
"noUnusedLocals": true,
noUnusedParameters用于檢測是否在函數(shù)中沒有使用的參數(shù)
"noUnusedParameters": true,
noImplicitReturns用于檢查函數(shù)是否有返回值,設(shè)為true后,如果函數(shù)沒有返回值則會提示,默認為false
"noImplicitReturns": true,
noFallthroughCasesInSwitch用于檢查switch中是否有case沒有使用break跳出switch,默認為false
"noFallthroughCasesInSwitch": true,
moduleResolution用于選擇模塊解析策略,有"node"和"classic"兩種類型
"moduleResolution": "node",
baseUrl用于設(shè)置解析非相對模塊名稱的基本目錄,相對模塊不會受到baseUrl的影響
"baseUrl": "./",
paths用于設(shè)置模塊名到基于baseUrl的路徑映射
"paths": {
"*":["./node_modules/@types", "./typings/*"]
},rootDirs可以指定一個路徑列表,在構(gòu)建時編譯器會將這個路徑中的內(nèi)容都放到一個文件夾中
"rootDirs": [],
typeRoots用來指定聲明文件或文件夾的路徑列表,如果指定了此項,則只有在這里列出的聲明文件才會被加載
"typeRoots": [],
types用于指定需要包含的模塊,只有在這里列出的模塊的聲明文件才會被加載
"types": [],
allowSyntheticDefaultImports用來指定允許從沒有默認導(dǎo)出的模塊中默認導(dǎo)入
"allowSyntheticDefaultImports": true,
esModuleInterop通過導(dǎo)入內(nèi)容創(chuàng)建命名空間,實現(xiàn)CommonJS和ES模塊之間的互操作性
"esModuleInterop": true,
不把符號鏈接解析為真實路徑,具體可以了解下webpack和node.js的symlink相關(guān)知識
"preserveSymlinks": true,
sourceRoot用于指定調(diào)試器應(yīng)該找到TypeScript文件而不是源文件的位置,這個值會被寫進.map文件里
"sourceRoot": "",
mapRoot用于指定調(diào)試器找到映射文件而非生成文件的位置,指定map文件的根路徑,該選項會影響.map文件中的sources屬性
"mapRoot": "",
inlineSourceMap指定是否將map文件內(nèi)容和js文件編譯在一個同一個js文件中,如果設(shè)為true,則map的內(nèi)容會以//#soureMappingURL=開頭,然后接base64字符串的形式插入在js文件底部
"inlineSourceMap": true,
inlineSources用于指定是否進一步將ts文件的內(nèi)容也包含到輸出文件中
"inlineSources": true,
experimentalDecorators用于指定是否啟用實驗性的裝飾器特性
"experimentalDecorators": true,
emitDecoratorMetadata用于指定是否為裝上去提供元數(shù)據(jù)支持,關(guān)于元數(shù)據(jù),也是ES6的新標準,可以通過Reflect提供的靜態(tài)方法獲取元數(shù)據(jù),如果需要使用Reflect的一些方法,需要引用ES2015.Reflect這個庫
"emitDecoratorMetadata": true,
include也可以指定要編譯的路徑列表
"include":[],
files可以配置一個數(shù)組列表
"files":[],
exclude表示要排除的,不編譯的文件,它也可以指定一個列表,規(guī)則和include一樣,可以是文件可以是文件夾,可以是相對路徑或絕對路徑,可以使用通配符
"exclude":[]
extends可以通過指定一個其他的tsconfig.json文件路徑,來繼承這個配置文件里的配置,繼承來的文件的配置會覆蓋當前文件定義的配置
"extends":""
compileOnSave如果設(shè)為true,在我們編輯了項目文件保存的時候,編輯器會根據(jù)tsconfig.json的配置更新重新生成文本,不過這個編輯器支持
"compileOnSave":true
一個對象數(shù)組,指定要引用的項目
"references":[]
以上就是tsconfig.json配置選項使用JIEXI 的詳細內(nèi)容,更多關(guān)于tsconfig.json配置選項的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
TypeScript之Generics泛型類型學(xué)習(xí)
這篇文章主要為大家介紹了TypeScript之Generics泛型類型學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
TypeScript數(shù)據(jù)結(jié)構(gòu)鏈表結(jié)構(gòu)?LinkedList教程及面試
這篇文章主要為大家介紹了TypeScript數(shù)據(jù)結(jié)構(gòu)鏈表結(jié)構(gòu)?LinkedList教程及面試,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02
type challenge刷題之(middle 部分)示例解析
這篇文章主要為大家介紹了type challenge刷題之(middle 部分)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08
TypeScript與JavaScript的區(qū)別分析
TypeScript可以使用JavaScript中的所有代碼和編程概念,TypeScript是為了使JavaScript的開發(fā)變得更加容易而創(chuàng)建的。推薦先精通JS的的前提下再學(xué)習(xí)TS,這樣更有利于同時學(xué)習(xí)兩門語言。2022-12-12
TypeScript十大排序算法之選擇排序?qū)崿F(xiàn)示例詳解
這篇文章主要為大家介紹了TypeScript十大排序算法之選擇排序?qū)崿F(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02
簡單三行代碼函數(shù)實現(xiàn)幾十行Typescript類型推導(dǎo)
這篇文章主要為大家介紹了簡單三行代碼函數(shù)實現(xiàn)幾十行Typescript類型推導(dǎo)的方案示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01
TypeScript實現(xiàn)類型安全的EventEmitter
這篇文章主要為大家介紹了TypeScript實現(xiàn)類型安全的EventEmitter示例詳解有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
TypeScript開發(fā)HapiJS應(yīng)用詳解
這篇文章主要為大家介紹了TypeScript開發(fā)HapiJS應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08
數(shù)據(jù)結(jié)構(gòu)TypeScript之二叉查找樹實現(xiàn)詳解
這篇文章主要為大家介紹了數(shù)據(jù)結(jié)構(gòu)TypeScript之二叉查找樹實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01

