1. compilerOptions
-
target
:指定编译出来的 JavaScript 代码的目标执行环境是什么。常用值有ES3
、ES5
、ES6/ES2015
、ES7/ES2016
等。默认为"ES3"
。 -
module
:指定模块的生成方式,可以是CommonJS
、UMD
、AMD
、System
、ES2020
等等。一般常用的有CommonJS
和ES2020
。默认为"CommonJS"
。 -
lib
:表示编译器在编译过程中可以访问的库文件的列表。例如,如果你需要使用Promise
,就需要将es6
或以上版本的库文件加入到该选项中。默认值为一个空数组。 -
allowJs
:是否允许编译 JS 文件,默认为false
。 -
checkJs
:是否对 JS 文件进行类型检查,默认为false
。 -
sourceMap
:生成 source map 文件,方便调试和定位代码位置。一般情况下建议开启该选项,可以在浏览器控制台中直接查看源代码而不是压缩后的代码。默认为false
。 -
outDir
:定义输出目录,即编译后的文件放置位置。 -
strict
:严格模式开关,开启该选项会开启其他所有相关的严格检查选项。建议将其值设置为true
,以提高代码质量。默认为false
。 -
noImplicitAny
:是否允许隐式的 any 类型。建议开启该选项以避免对类型系统造成不必要的破坏。默认为false
。 -
strictNullChecks
:非空检查开关,推荐开启。默认为false
。 -
strictFunctionTypes
:函数类型检查开关,推荐开启。默认为false
。 -
strictPropertyInitialization
:属性初始化检查开关,推荐开启。默认为false
。 -
alwaysStrict
:强制使用严格模式开关。默认为false
。 -
noUnusedLocals
和noUnusedParameters
:未使用变量和参数检查开关。推荐开启。 -
noImplicitReturns
和noFallthroughCasesInSwitch
:函数返回值检查开关和 switch 语句 case 是否都有执行体检查开关。推荐开启。 -
esModuleInterop
:用于支持 CommonJS 模块的按需导入,一般建议开启。默认为false
。 -
resolveJsonModule
:用于支持直接 import json 文件。需要先安装@types/node
包并开启该选项。默认为false
。 -
declaration
:是否生成相应的 .d.ts 声明文件。需搭配"outDir"
属性来使用。默认为false
。 -
declarationMap
:是否生成相应的 .d.ts.map 声明文件。默认为false
。 -
typeRoots
:编译器查找 type definition 文件的根路径列表。默认只包含node_modules/@types
路径。 -
experimentalDecorators
:支持 decorator 装饰器语法特性,常用于 React、Vue 等框架中。
2. include
和 exclude
-
include
:会被编译的文件/目录的列表,可以使用通配符(, **/.ts)来匹配多个文件或目录,注意不要同时指定 include 和 exclude,否则可能造成一些意外的行为。 -
exclude
:排除在编译之外的文件/目录的列表,同样也支持使用通配符。