# 什么是 tsconfig.json
# 概述
目录中存在 tsconfig.json
文件表明该目录是 TypeScript 项目的根目录。tsconfig.json
文件指定编译项目所需的根文件和编译器选项。
JavaScript 项目可以改用 jsconfig.json
文件,它的作用几乎相同,但默认启用了一些与 JavaScript 相关的编译器标志。
项目通过以下方式之一编译:
# 使用 tsconfig.json 或 jsconfig.json
- 通过在没有输入文件的情况下调用 tsc,在这种情况下,编译器会从当前目录开始搜索
tsconfig.json
文件,并继续沿父目录链向上。 - 通过在没有输入文件和
--project
(或只是-p
)命令行选项的情况下调用 tsc,该选项指定包含tsconfig.json
文件的目录的路径,或包含配置的有效.json
文件的路径。
在命令行上指定输入文件时,tsconfig.json
文件将被忽略。
# 示例
示例 tsconfig.json
文件:
- 使用
files
属性
{
"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"
]
}
- 使用
include
和exclude
属性
{
"compilerOptions": {
"module": "system",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"outFile": "../../built/local/tsc.js",
"sourceMap": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}
# TSConfig 基础
根据您打算在其中运行代码的 JavaScript 运行时环境,可能有一个您可以在 github.com/tsconfig/bases
使用的基本配置。这些是您的项目扩展的 tsconfig.json
文件,通过处理运行时支持来简化您的 tsconfig.json
。
例如,如果您正在编写一个使用 Node.js 版本 12 及更高版本的项目,那么您可以使用 npm 模块 @tsconfig/node12
:
{
"extends": "@tsconfig/node12/tsconfig.json",
"compilerOptions": {
"preserveConstEnums": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}
这让您的 tsconfig.json
专注于您项目的独特选择,而不是所有运行时机制。已经有一些 tsconfig 基础,我们希望社区可以为不同的环境添加更多。
推荐
Node 10
Node 12
Node 14
Node 16
Deno
React 原生
Svelte
# 详情
"compilerOptions"
属性可以省略,在这种情况下使用编译器的默认值。请参阅我们支持的 编译器选项
的完整列表。
# TSConfig 参考手册
要了解有关 TSConfig 参考手册
中数百个配置选项的更多信息。
# Schema
tsconfig.json
Schema 可以在 JSON 模式存储
找到。
← 变量声明 MSBuild 中的编译器选项 →