tsconfig.json是TypeScript的编译器配置文件,用于定义TypeScript编译器的行为。各个选项的作用如下:
-
“compilerOptions”: 编译器选项,用于配置TypeScript编译器的行为。包括指定目标JS版本、模块化方式、输出目录、是否生成source map等。
-
“files”: 指定需要编译的文件列表,可以是相对或绝对路径。若未指定此项,则编译器将编译项目下所有包含在"include"选项中的文件。
-
“include”: 包含需要编译的文件的glob路径模式。
-
“exclude”: 排除不需要编译的文件的glob路径模式。
-
“extends”: 用于扩展其他tsconfig.json配置,可以被配置文件继承。
-
“compileOnSave”: 是否在保存文件时自动编译。
-
“references”: 使用项目引用,可以将一个项目作为另一个项目的依赖。
-
“typeAcquisition”: 自动获取类型声明的设置。
-
“angularCompilerOptions”: 帮助编译Angular应用程序的特殊编译器选项。
-
“excludeDirectories”: 确定不应该被搜索的顶级目录。
-
“excludeFiles”: 指定应该被忽略的文件。
-
“includeDirectories”: 包含需要编译的文件的目录列表。
-
“files”: 指定需要编译的特定文件。
compilerOptions
-
target
: 指定编译后代码的目标JavaScript版本,默认值是ES3。可选项包括:ES3、ES5、ES6/ES2015、ES2016、ES2017、ES2018、ES2019、ES2020、ES2021。 -
module
: 指定编译后代码使用的模块系统,默认值是None。可选项包括:CommonJS、AMD、System、UMD和ES6。 -
lib
: 指定编译过程中使用的内置类型定义库,默认值是空数组。常用的可选项包括:ES6/ES2015、ES2016、ES2017、ES2018、ES2019、ES2020、ES2021、Dom、WebWorker、ScriptHost、ESNext等。 -
outDir
: 指定编译输出目录。 -
sourceMap
: 是否生成对应的声明文件。 -
removeComments
: 是否在编译后移除代码中的注释。 -
noImplicitAny
: 是否在声明变量时必须给该变量明确的类型注解,如果不指定则会报错。 -
strictNullChecks
: 是否开启严格的null检查。 -
esModuleInterop
: 是否支持将CommonJS模块转换为ES6模块。 -
allowJs
: 是否允许编译JavaScript文件。 -
jsx
: 指定React使用的jsx版本。 -
declaration
: 是否生成声明文件。 -
experimentalDecorators
: 是否开启装饰器支持。 -
noUnusedLocals
: 是否检查未使用的本地变量。 -
noUnusedParameters
: 是否检查未使用的函数参数。 -
noImplicitReturns
: 是否检查函数是否有返回值。
-
noFallthroughCasesInSwitch
: 是否检查switch语句中的case是否都有break语句或者return语句。 -
allowUnreachableCode
: 是否允许有不可达代码。 -
strict
: 是否开启严格检查模式,包括strictNullChecks、strictFunctionTypes、strictPropertyInitialization、strictBindCallApply、alwaysStrict。 -
moduleResolution
: 模块解析策略,默认为Node,可选项为Node和Classic。 -
baseUrl
: 指定查找非相对模块的根目录。 -
paths
: 指定模块路径映射。 -
rootDirs
: 指定多个项目根目录。 -
typeRoots
: 指定类型定义文件的搜索目录。 -
types
: 指定要包含的类型定义文件。 -
preserveConstEnums
: 是否在编译过程中保留枚举值的常量性质。 -
declarationDir
: 指定生成声明文件的输出目录。 -
sourceRoot
: 指定源代码的根目录。 -
mapRoot
: 指定生成的source map文件的根目录。 -
resolveJsonModule
: 是否解析JSON模块。 -
skipLibCheck
: 是否跳过检查内置类型定义库。 -
strictFunctionTypes
: 是否开启函数类型检查,包括函数参数和返回值。 -
strictPropertyInitialization
: 是否检查属性是否被初始化。 -
strictBindCallApply
: 是否检查函数中使用的this是否正确绑定。 -
alwaysStrict
: 是否使用严格模式。 -
importHelpers
: 是否在生成的代码中使用帮助函数。 -
inlineSourceMap
: 是否在编译后将source map直接内联到生成的代码中。 -
inlineSources
: 是否在编译后将源代码直接内联到生成的代码中。 -
tsBuildInfoFile
: 指定生成的tsbuildinfo文件的路径。 -
experimentalWatchApi
: 是否开启实验性的watch API。