什么是 tsconfig.json
概述
目录中存在 tsconfig.json 文件表示该目录是 TypeScript 项目的根目录。 tsconfig.json 文件指定了根文件和编译项目所需的编译器选项。
JavaScript 项目可以使用 jsconfig.json 文件,其作用几乎相同,但默认启用了一些与 JavaScript 相关的编译器标志。
项目通过以下方式之一进行编译:
使用 tsconfig.json 或 jsconfig.json
- 在不带输入文件的情况下调用 tsc,此时编译器从当前目录开始向上查找父目录链,搜索
tsconfig.json文件。 - 在不带输入文件的情况下调用 tsc,并带有一个
--project(或简称-p)命令行选项,该选项指定包含tsconfig.json文件的目录的路径,或指定一个包含配置的有效.json文件的路径。
当在命令行上指定输入文件时,会忽略 tsconfig.json 文件。
示例
tsconfig.json 文件示例:
使用
files属性json{ "compilerOptions": { "module": "commonjs", "noImplicitAny": true, "removeComments": true, "preserveConstEnums": true, "sourceMap": true }, "files": [ "core.ts", "sys.ts", "types.ts", "scanner.ts", "parser.ts", "utilities.ts", "binder.ts", "checker.ts", "emitter.ts", "program.ts", "commandLineParser.ts", "tsc.ts", "diagnosticInformationMap.generated.ts" ] }- json
{ "compilerOptions": { "module": "system", "noImplicitAny": true, "removeComments": true, "preserveConstEnums": true, "outFile": "../../built/local/tsc.js", "sourceMap": true }, "include": ["src/**/*"], "exclude": ["**/*.spec.ts"] }
TSConfig 基础配置
根据你打算运行代码的 JavaScript 运行时环境,可能有一个可以在 github.com/tsconfig/bases 使用的基础配置。 这些是 tsconfig.json 文件,你的项目可以通过扩展它们来处理运行时支持,从而简化你的 tsconfig.json。
例如,如果你正在编写一个使用 Node.js 12 及以上版本的项目,那么你可以使用 npm 模块 @tsconfig/node12:
json
{
"extends": "@tsconfig/node12/tsconfig.json",
"compilerOptions": {
"preserveConstEnums": true
},
"include": ["src/**/*"],
"exclude": ["**/*.spec.ts"]
}这使你的 tsconfig.json 可以专注于项目的独特选择,而不用处理所有运行时机制。目前已有几个 tsconfig 基础配置,我们希望社区能为不同环境添加更多。
详细信息
"compilerOptions" 属性可以省略,在这种情况下将使用编译器的默认值。请参阅我们支持的编译器选项的完整列表。
TSConfig 参考
要了解数百个配置选项的更多信息,请参阅 TSConfig 参考。
模式
tsconfig.json 的模式可以在 JSON 模式仓库 中找到。