tsconfig.json配置詳解

{
  "compilerOptions": {
    /* Basic Options */
    "target": "es5" /* target用于指定編譯之后的版本目標: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */,
    "module": "commonjs" /* 用來指定要使用的模塊標準: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */,
    "lib": ["es6", "dom"] /* lib用于指定要包含在編譯中的庫文件 */,
    "allowJs": true,                       /* allowJs設置的值為true或false绎签,用來指定是否允許編譯js文件蝗蛙,默認是false枕稀,即不編譯js文件 */
    "checkJs": true,                       /* checkJs的值為true或false,用來指定是否檢查和報告js文件中的錯誤鹊奖,默認是false */
    "jsx": "preserve",                     /* 指定jsx代碼用于的開發(fā)環(huán)境: 'preserve', 'react-native', or 'react'. */
    "declaration": true,                   /* declaration的值為true或false,用來指定是否在編譯的時候生成相應的".d.ts"聲明文件敏储。如果設為true寡痰,編譯每個ts文件之后會生成一個js文件和一個聲明文件。但是declaration和allowJs不能同時設為true */
    "declarationMap": true,                /* 值為true或false俊扭,指定是否為聲明文件.d.ts生成map文件 */
    "sourceMap": true,                     /* sourceMap的值為true或false队橙,用來指定編譯時是否生成.map文件 */
    "outFile": "./",                       /* outFile用于指定將輸出文件合并為一個文件,它的值為一個文件路徑名萨惑。比如設置為"./dist/main.js"捐康,則輸出的文件為一個main.js文件。但是要注意庸蔼,只有設置module的值為amd和system模塊時才支持這個配置 */
    "outDir": "./",                        /* outDir用來指定輸出文件夾解总,值為一個文件夾路徑字符串,輸出的文件都將放置在這個文件夾 */
    "rootDir": "./",                       /* 用來指定編譯文件的根目錄姐仅,編譯器會在根目錄查找入口文件倾鲫,如果編譯器發(fā)現以rootDir的值作為根目錄查找入口文件并不會把所有文件加載進去的話會報錯,但是不會停止編譯 */
    "composite": true,                     /* 是否編譯構建引用項目  */
    "incremental": true,                   /* 是否啟用增量編譯*/
    "tsBuildInfoFile": "./",               /* 指定文件用來存儲增量編譯信息 */
    "removeComments": true,                /* removeComments的值為true或false萍嬉,用于指定是否將編譯后的文件中的注釋刪掉乌昔,設為true的話即刪掉注釋,默認為false */
    "noEmit": true,                        /* 不生成編譯文件壤追,這個一般比較少用 */
    "importHelpers": true,                 /* importHelpers的值為true或false磕道,指定是否引入tslib里的輔助工具函數,默認為false */
    "downlevelIteration": true,            /* 當target為'ES5' or 'ES3'時行冰,為'for-of', spread, and destructuring'中的迭代器提供完全支持 */
    "isolatedModules": true,               /* isolatedModules的值為true或false溺蕉,指定是否將每個文件作為單獨的模塊,默認為true悼做,它不可以和declaration同時設定 */

    /* Strict Type-Checking Options */
    "strict": true /* strict的值為true或false疯特,用于指定是否啟動所有類型檢查,如果設為true則會同時開啟下面這幾個嚴格類型檢查肛走,默認為false */,
    "noImplicitAny": true,                 /* noImplicitAny的值為true或false漓雅,如果我們沒有為一些值設置明確的類型,編譯器會默認認為這個值為any朽色,如果noImplicitAny的值為true的話邻吞。則沒有明確的類型會報錯。默認值為false */
    "strictNullChecks": true,              /* strictNullChecks為true時葫男,null和undefined值不能賦給非這兩種類型的值抱冷,別的類型也不能賦給他們,除了any類型梢褐。還有個例外就是undefined可以賦值給void類型 */
    "strictFunctionTypes": true,           /* strictFunctionTypes的值為true或false旺遮,用于指定是否使用函數參數雙向協(xié)變檢查 */
    "strictBindCallApply": true,           /* 設為true后會對bind赵讯、call和apply綁定的方法的參數的檢測是嚴格檢測的 */
    "strictPropertyInitialization": true,  /* 設為true后會檢查類的非undefined屬性是否已經在構造函數里初始化,如果要開啟這項耿眉,需要同時開啟strictNullChecks瘦癌,默認為false */
   "noImplicitThis": true,                /* 當this表達式的值為any類型的時候,生成一個錯誤 */
    "alwaysStrict": true,                  /* alwaysStrict的值為true或false跷敬,指定始終以嚴格模式檢查每個模塊讯私,并且在編譯之后的js文件中加入"use strict"字符串,用來告訴瀏覽器該js為嚴格模式 */

    /* Additional Checks */
    "noUnusedLocals": true,                /* 用于檢查是否有定義了但是沒有使用的變量西傀,對于這一點的檢測斤寇,使用eslint可以在你書寫代碼的時候做提示,你可以配合使用拥褂。它的默認值為false */
    "noUnusedParameters": true,            /* 用于檢查是否有在函數體中沒有使用的參數娘锁,這個也可以配合eslint來做檢查,默認為false */
    "noImplicitReturns": true,             /* 用于檢查函數是否有返回值饺鹃,設為true后莫秆,如果函數沒有返回值則會提示,默認為false */
    "noFallthroughCasesInSwitch": true,    /* 用于檢查switch中是否有case沒有使用break跳出switch悔详,默認為false */

    /* Module Resolution Options */
    "moduleResolution": "node",            /* 用于選擇模塊解析策略镊屎,有'node'和'classic'兩種類型' */
    "baseUrl": "./",                       /* baseUrl用于設置解析非相對模塊名稱的基本目錄,相對模塊不會受baseUrl的影響 */
    "paths": {},                           /* 用于設置模塊名稱到基于baseUrl的路徑映射 */
    "rootDirs": [],                        /* rootDirs可以指定一個路徑列表茄螃,在構建時編譯器會將這個路徑列表中的路徑的內容都放到一個文件夾中 */
    "typeRoots": [],                       /* typeRoots用來指定聲明文件或文件夾的路徑列表缝驳,如果指定了此項,則只有在這里列出的聲明文件才會被加載 */
    "types": [],                           /* types用來指定需要包含的模塊归苍,只有在這里列出的模塊的聲明文件才會被加載進來 */
    "allowSyntheticDefaultImports": true,  /* 用來指定允許從沒有默認導出的模塊中默認導入 */
    "esModuleInterop": true /* 通過為導入內容創(chuàng)建命名空間用狱,實現CommonJS和ES模塊之間的互操作性 */,
    "preserveSymlinks": true,              /* 不把符號鏈接解析為其真實路徑,具體可以了解下webpack和nodejs的symlink相關知識 */

    /* Source Map Options */
    "sourceRoot": "",                      /* sourceRoot用于指定調試器應該找到TypeScript文件而不是源文件位置拼弃,這個值會被寫進.map文件里 */
    "mapRoot": "",                         /* mapRoot用于指定調試器找到映射文件而非生成文件的位置夏伊,指定map文件的根路徑,該選項會影響.map文件中的sources屬性 */
    "inlineSourceMap": true,               /* 指定是否將map文件的內容和js文件編譯在同一個js文件中吻氧,如果設為true溺忧,則map的內容會以//# sourceMappingURL=然后拼接base64字符串的形式插入在js文件底部 */
    "inlineSources": true,                 /* 用于指定是否進一步將.ts文件的內容也包含到輸入文件中 */

    /* Experimental Options */
    "experimentalDecorators": true /* 用于指定是否啟用實驗性的裝飾器特性 */
    "emitDecoratorMetadata": true,         /* 用于指定是否為裝飾器提供元數據支持,關于元數據医男,也是ES6的新標準砸狞,可以通過Reflect提供的靜態(tài)方法獲取元數據捻勉,如果需要使用Reflect的一些方法镀梭,需要引入ES2015.Reflect這個庫 */
  }
  "files": [], // files可以配置一個數組列表,里面包含指定文件的相對或絕對路徑踱启,編譯器在編譯的時候只會編譯包含在files中列出的文件报账,如果不指定研底,則取決于有沒有設置include選項,如果沒有include選項透罢,則默認會編譯根目錄以及所有子目錄中的文件榜晦。這里列出的路徑必須是指定文件,而不是某個文件夾羽圃,而且不能使用* ? **/ 等通配符
  "include": [],  // include也可以指定要編譯的路徑列表乾胶,但是和files的區(qū)別在于,這里的路徑可以是文件夾朽寞,也可以是文件识窿,可以使用相對和絕對路徑,而且可以使用通配符脑融,比如"./src"即表示要編譯src文件夾下的所有文件以及子文件夾的文件
  "exclude": [],  // exclude表示要排除的喻频、不編譯的文件,它也可以指定一個列表肘迎,規(guī)則和include一樣甥温,可以是文件或文件夾,可以是相對路徑或絕對路徑妓布,可以使用通配符
  "extends": "",   // extends可以通過指定一個其他的tsconfig.json文件路徑姻蚓,來繼承這個配置文件里的配置,繼承來的文件的配置會覆蓋當前文件定義的配置匣沼。TS在3.2版本開始史简,支持繼承一個來自Node.js包的tsconfig.json配置文件
  "compileOnSave": true,  // compileOnSave的值是true或false,如果設為true肛著,在我們編輯了項目中的文件保存的時候圆兵,編輯器會根據tsconfig.json中的配置重新生成文件,不過這個要編輯器支持
  "references": [],  // 一個對象數組枢贿,指定要引用的項目
}

參考鏈接:https://jack-cool.github.io/2019/08/05/tsconfig-json-%E9%85%8D%E7%BD%AE%E8%AF%A6%E8%A7%A3/
這位大神的網站太炫酷了殉农,所以考過來慢慢看

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市局荚,隨后出現的幾起案子超凳,更是在濱河造成了極大的恐慌,老刑警劉巖耀态,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轮傍,死亡現場離奇詭異,居然都是意外死亡首装,警方通過查閱死者的電腦和手機创夜,發(fā)現死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來仙逻,“玉大人驰吓,你說我怎么就攤上這事涧尿。” “怎么了檬贰?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵姑廉,是天一觀的道長。 經常有香客問我翁涤,道長桥言,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任葵礼,我火速辦了婚禮限书,結果婚禮上,老公的妹妹穿的比我還像新娘章咧。我一直安慰自己倦西,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布赁严。 她就那樣靜靜地躺著扰柠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疼约。 梳的紋絲不亂的頭發(fā)上卤档,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音程剥,去河邊找鬼劝枣。 笑死,一個胖子當著我的面吹牛织鲸,可吹牛的內容都是我干的舔腾。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼搂擦,長吁一口氣:“原來是場噩夢啊……” “哼稳诚!你這毒婦竟也來了?” 一聲冷哼從身側響起瀑踢,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤扳还,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后橱夭,有當地人在樹林里發(fā)現了一具尸體氨距,經...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年棘劣,在試婚紗的時候發(fā)現自己被綠了俏让。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖舆驶,靈堂內的尸體忽然破棺而出橱健,到底是詐尸還是另有隱情而钞,我是刑警寧澤沙廉,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站臼节,受9級特大地震影響撬陵,放射性物質發(fā)生泄漏。R本人自食惡果不足惜网缝,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一巨税、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧粉臊,春花似錦草添、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屠凶,卻和暖如春驰后,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背矗愧。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工灶芝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人唉韭。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓夜涕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親属愤。 傳聞我的和親對象是個殘疾皇子钠乏,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344