tsconfig.json 配置清单
基础结构
{
"compilerOptions": {
},
"include": [
],
"exclude": [
],
"extends": "./base-tsconfig.json",
"files": [
],
"references": [
]
}
compilerOptions 详细配置
按类别整理,每个配置项都附带解释和可能的值。
1. ECMAScript 版本、模块系统
配置项 | 说明 | 可能的值 |
---|
target | 目标 ECMAScript 版本 | ES3 , ES5 , ES6 , ES2015 , ES2016 , ES2017 , ES2018 , ES2019 , ES2020 , ES2021 , ES2022 , ESNext |
module | 目标模块系统 | CommonJS , AMD , UMD , System , ES6 , ES2015 , ES2020 , ESNext |
lib | 需要包含的库 | ["ES6", "DOM", "ESNext", "ES2020", "ES2019"] |
moduleResolution | 模块解析策略 | Classic , Node , Bundler |
moduleDetection | 何时启用模块支持 | auto , legacy , force |
rootDirs | 指定多个根目录 | ["src", "shared"] |
allowJs | 允许编译 .js 文件 | true , false |
checkJs | 启用 JS 文件类型检查 | true , false |
resolveJsonModule | 允许导入 JSON 文件 | true , false |
esModuleInterop | 兼容 ES 模块默认导入 | true , false |
preserveSymlinks | 不解析软链接 | true , false |
2. 输出控制
配置项 | 说明 | 可能的值 |
---|
outDir | 指定输出目录 | "./dist" |
outFile | 输出为单个 .js 文件 | "./bundle.js" |
rootDir | 指定源代码根目录 | "./src" |
declaration | 生成 .d.ts 声明文件 | true , false |
declarationMap | 生成 .d.ts.map 映射文件 | true , false |
declarationDir | .d.ts 输出目录 | "./types" |
sourceMap | 生成 .map 文件 | true , false |
inlineSourceMap | 内联 sourceMap | true , false |
removeComments | 移除注释 | true , false |
emitBOM | 输出带有 BOM 头的文件 | true , false |
3. 严格模式
配置项 | 说明 | 可能的值 |
---|
strict | 开启所有严格模式 | true , false |
noImplicitAny | 禁止隐式 any 类型 | true , false |
strictNullChecks | 启用严格的空值检查 | true , false |
strictFunctionTypes | 启用函数参数严格检查 | true , false |
strictBindCallApply | 启用 bind 、call 、apply 检查 | true , false |
strictPropertyInitialization | 要求类属性初始化 | true , false |
useUnknownInCatchVariables | catch 语句变量默认 unknown | true , false |
4. 代码检查
配置项 | 说明 | 可能的值 |
---|
noUnusedLocals | 禁止未使用的局部变量 | true , false |
noUnusedParameters | 禁止未使用的函数参数 | true , false |
noImplicitReturns | 要求函数必须有返回值 | true , false |
noFallthroughCasesInSwitch | 禁止 switch 语句 fallthrough | true , false |
allowUnreachableCode | 允许无法访问的代码 | true , false |
5. ES 特性支持
配置项 | 说明 | 可能的值 |
---|
experimentalDecorators | 启用实验性的装饰器 | true , false |
emitDecoratorMetadata | 生成装饰器的元数据 | true , false |
downlevelIteration | 向低版本 ES 兼容迭代器 | true , false |
6. 其他
配置项 | 说明 |
---|
baseUrl | 模块解析的基准路径 |
paths | 配置模块别名 |
types | 指定要包含的类型定义 |
allowSyntheticDefaultImports | 允许默认导入非 ES6 模块 |
forceConsistentCasingInFileNames | 强制文件名大小写一致 |
7. include
、exclude
、files
{
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"],
"files": ["index.ts", "types.d.ts"]
}
8. extends
{
"extends": "./base-tsconfig.json"
}
9. references
{
"references": [
{ "path": "./packages/core" },
{ "path": "./packages/utils" }
]
}
10. 示例
{
"compilerOptions": {
"target": "ES2020",
"module": "CommonJS",
"strict": true,
"outDir": "./dist",
"rootDir": "./src",
"sourceMap": true,
"resolveJsonModule": true,
"allowJs": true,
"incremental": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}