1523 words
8 minutes
TSConfig 参考指南简介
2025-02-26 10:39:46
2025-12-24 23:45:46

本文翻译自 TypeScript 官方文档

root fields#

  • files - 指定要包含在程序中的文件列表
  • extends - 指定要继承的基础配置文件
  • include - 指定要包含的文件匹配模式
  • exclude - 指定要排除的文件匹配模式
  • references - 指定项目引用

compilerOptions#

type checking#

  • allowUnreachableCode - 是否允许出现永远不会执行的代码
  • allowUnusedLabels - 是否允许未使用的标签
  • alwaysStrict - 是否以严格模式解析并为每个源文件生成 “use strict” 语句
  • exactOptionalPropertyTypes - 是否启用可选属性的精确类型检查
  • noFallthroughCasesInSwitch - 是否禁止 switch 语句中的贯穿(fall through)情况
  • noImplicitAny - 是否禁止隐式的 any 类型
  • noImplicitOverride - 是否要求显式声明重写
  • noImplicitReturns - 是否检查函数是否有返回值
  • noImplicitThis - 是否禁止 this 表达式隐式的 any 类型
  • noPropertyAccessFromIndexSignature - 是否禁止从索引签名访问属性
  • noUncheckedIndexedAccess - 是否启用索引访问的严格检查
  • noUnusedLocals - 是否报告未使用的局部变量
  • noUnusedParameters - 是否报告未使用的参数
  • strict - 启用所有严格类型检查选项
  • strictBindCallApply - 是否对函数的 bind、call 和 apply 方法进行严格检查
  • strictBuiltinIteratorReturn - 是否对内置迭代器的返回值进行严格检查
  • strictFunctionTypes - 是否启用函数类型的严格检查
  • strictNullChecks - 是否启用严格的 null 检查
  • strictPropertyInitialization - 是否检查类属性是否已经初始化
  • useUnknownInCatchVariables - 是否在 catch 语句中使用 unknown 类型

modules#

  • allowArbitraryExtensions - 是否允许任意文件扩展名
  • allowImportingTsExtensions - 是否允许导入 .ts 扩展名的文件
  • allowUmdGlobalAccess - 是否允许从模块访问 UMD 全局变量
  • baseUrl - 解析非相对模块名的基准目录
  • customConditions - 自定义解析条件
  • module - 指定生成的模块代码
  • moduleResolution - 指定模块解析策略
  • moduleSuffixes - 指定模块后缀名解析顺序
  • noResolve - 不解析模块导入
  • noUncheckedSideEffectImports - 检查导入的副作用
  • paths - 模块名到基于 baseUrl 的路径映射列表
  • resolveJsonModule - 是否解析 JSON 模块
  • resolvePackageJsonExports - 是否解析 package.json 的 exports 字段
  • resolvePackageJsonImports - 是否解析 package.json 的 imports 字段
  • rewriteRelativeImportExtensions - 是否重写相对导入的扩展名
  • rootDir - 指定输入文件的根目录
  • rootDirs - 根目录列表
  • typeRoots - 类型声明文件目录列表
  • types - 要包含的类型声明文件名列表

emit#

  • declaration - 生成相应的 .d.ts 文件
  • declarationDir - .d.ts 文件的输出目录
  • declarationMap - 为 .d.ts 文件生成源映射
  • downlevelIteration - 降级遍历器实现
  • emitBOM - 在输出文件开头加入 BOM 标记
  • emitDeclarationOnly - 只生成声明文件
  • importHelpers - 从 tslib 导入辅助工具函数
  • inlineSourceMap - 将源映射内联到 JS 文件中
  • inlineSources - 将源代码内联到源映射中
  • mapRoot - 指定调试器应该找到映射文件的位置
  • newLine - 指定输出文件的换行符
  • noEmit - 不生成输出文件
  • noEmitHelpers - 不在输出文件中包含辅助函数
  • noEmitOnError - 有错误时不生成输出
  • outDir - 指定输出目录
  • outFile - 将输出文件合并为一个文件
  • preserveConstEnums - 保留 const enum 声明
  • removeComments - 删除所有注释
  • sourceMap - 生成源映射文件
  • sourceRoot - 指定调试器应该找到源文件的位置
  • stripInternal - 不输出带有 @internal 注释的代码

javascript support#

  • allowJs - 允许编译 JavaScript 文件
  • checkJs - 报告 JavaScript 文件中的错误
  • maxNodeModuleJsDepth - node_modules 中 JavaScript 文件的最大搜索深度

editor support#

  • disableSizeLimit - 禁用 JavaScript 项目大小限制
  • plugins - 要加载的语言服务插件列表

interop constraints#

  • allowSyntheticDefaultImports - 允许从没有默认导出的模块中默认导入
  • esModuleInterop - 启用 CommonJS 和 ES 模块之间的互操作性
  • forceConsistentCasingInFileNames - 强制区分大小写
  • isolatedDeclarations - 隔离声明文件
  • isolatedModules - 将每个文件作为单独的模块
  • preserveSymlinks - 不把符号链接解析为其真实路径
  • verbatimModuleSyntax - 使用原始模块语法

backwards compatibility#

  • charset - 输入文件的字符集
  • importsNotUsedAsValues - 未使用的导入处理
  • keyofStringsOnly - keyof 只返回字符串类型
  • noImplicitUseStrict - 不在输出中添加 ‘use strict’
  • noStrictGenericChecks - 禁用泛型的严格检查
  • out - 已废弃,使用 outFile 代替
  • preserveValueImports - 保留值导入
  • suppressExcessPropertyErrors - 禁止过量属性检查
  • suppressImplicitAnyIndexErrors - 禁止隐式索引错误

language and environment#

  • emitDecoratorMetadata - 为装饰器生成元数据
  • experimentalDecorators - 启用实验性的装饰器
  • jsx - 指定 JSX 代码生成
  • jsxFactory - 指定 JSX 工厂函数
  • jsxFragmentFactory - 指定 JSX Fragment 工厂函数
  • jsxImportSource - 指定 JSX 运行时模块说明符
  • lib - 指定要包含的库文件
  • moduleDetection - 指定模块检测方式
  • noLib - 不包含默认库文件
  • reactNamespace - 指定 React 命名空间
  • target - 指定 ECMAScript 目标版本
  • useDefineForClassFields - 使用 Object.defineProperty 定义类字段

compiler diagnostics#

  • diagnostics - 显示诊断信息
  • explainFiles - 解释文件包含的原因
  • extendedDiagnostics - 显示详细的诊断信息
  • generateCpuProfile - 生成 CPU 分析文件
  • generateTrace - 生成编译器跟踪
  • listEmittedFiles - 打印输出的文件
  • listFiles - 打印编译的文件
  • noCheck - 禁用所有检查
  • traceResolution - 启用模块解析跟踪

projects#

  • composite - 启用项目编译
  • disableReferencedProjectLoad - 禁用自动加载引用的项目
  • disableSolutionSearching - 禁用解决方案搜索
  • disableSourceOfProjectReferenceRedirect - 禁用项目引用重定向
  • incremental - 启用增量编译
  • tsBuildInfoFile - 指定 .tsbuildinfo 文件的位置

output formatting#

  • noErrorTruncation - 不截断错误消息
  • preserveWatchOutput - 保留监视模式输出
  • pretty - 使用颜色和上下文美化错误和消息

completeness#

  • skipDefaultLibCheck - 跳过默认库的类型检查
  • skipLibCheck - 跳过声明文件的类型检查

watchOptions#

watch options#

  • watchFile - 监视单个文件的策略
  • watchDirectory - 监视目录的策略
  • fallbackPolling - 轮询策略
  • synchronousWatchDirectory - 同步目录监视
  • excludeDirectories - 排除监视的目录
  • excludeFiles - 排除监视的文件

typeAcquisition#

type acquisition#

  • enable - 启用类型获取
  • include - 包含的类型包
  • exclude - 排除的类型包
  • disableFilenameBasedTypeAcquisition - 禁用基于文件名的类型获取
TSConfig 参考指南简介
https://0bipinnata0.my/posts/typescript/tsconfig/
Author
0bipinnata0
Published at
2025-02-26 10:39:46