由于開(kāi)發(fā)包含ts的項(xiàng)目經(jīng)常要配置tsconfig.json,所以自己梳理了一份tsconfig.json文件;
里面包含了一些常用的tsconfig選項(xiàng)以及注解:
{
"compilerOptions": {
"allowUnreachableCode": true, // 不報(bào)告執(zhí)行不到的代碼錯(cuò)誤碴倾。
"allowUnusedLabels": false, // 不報(bào)告未使用的標(biāo)簽錯(cuò)誤
"alwaysStrict": false, // 以嚴(yán)格模式解析并為每個(gè)源文件生成 "use strict"語(yǔ)句
"baseUrl": ".", // 工作根目錄
"experimentalDecorators": true, // 啟用實(shí)驗(yàn)性的ES裝飾器
"jsx": "react", // 在 .tsx文件里支持JSX
"sourceMap": true, // 是否生成map文件
"module": "commonjs", // 指定生成哪個(gè)模塊系統(tǒng)代碼
"noImplicitAny": false, // 是否默認(rèn)禁用 any
"removeComments": true, // 是否移除注釋
"types": [ //指定引入的類(lèi)型聲明文件池磁,默認(rèn)是自動(dòng)引入所有聲明文件跪解,一旦指定該選項(xiàng)炉旷,則會(huì)禁用自動(dòng)引入,改為只引入指定的類(lèi)型聲明文件,如果指定空數(shù)組[]則不引用任何文件
"node", // 引入 node 的類(lèi)型聲明
],
"paths": { // 指定模塊的路徑窘行,和baseUrl有關(guān)聯(lián)骏啰,和webpack中resolve.alias配置一樣
"src": [ //指定后可以在文件之直接 import * from 'src';
"./src"
],
},
"target": "ESNext", // 編譯的目標(biāo)是什么版本的
"outDir": "./dist", // 輸出目錄
"declaration": true, // 是否自動(dòng)創(chuàng)建類(lèi)型聲明文件
"declarationDir": "./lib", // 類(lèi)型聲明文件的輸出目錄
"allowJs": true, // 允許編譯javascript文件。
"lib": [ // 編譯過(guò)程中需要引入的庫(kù)文件的列表
"es5",
"es2015",
"es2016",
"es2017",
"es2018",
"dom"
]
},
// 指定一個(gè)匹配列表(屬于自動(dòng)指定該路徑下的所有ts相關(guān)文件)
"include": [
"src/**/*"
],
// 指定一個(gè)排除列表(include的反向操作)
"exclude": [
"demo.ts"
],
// 指定哪些文件使用該配置(屬于手動(dòng)一個(gè)個(gè)指定文件)
"files": [
"demo.ts"
]
}