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"]
}