当前位置: 首页 > news >正文

tsconfig.json 配置清单

tsconfig.json 配置清单

基础结构

{
  "compilerOptions": {
    // 编译选项
  },
  "include": [
    // 指定需要编译的文件或目录
  ],
  "exclude": [
    // 指定不需要编译的文件或目录
  ],
  "extends": "./base-tsconfig.json",
  "files": [
    // 需要编译的具体文件
  ],
  "references": [
    // 用于 TypeScript 项目引用
  ]
}

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内联 sourceMaptrue, false
removeComments移除注释true, false
emitBOM输出带有 BOM 头的文件true, false

3. 严格模式

配置项说明可能的值
strict开启所有严格模式true, false
noImplicitAny禁止隐式 any 类型true, false
strictNullChecks启用严格的空值检查true, false
strictFunctionTypes启用函数参数严格检查true, false
strictBindCallApply启用 bindcallapply 检查true, false
strictPropertyInitialization要求类属性初始化true, false
useUnknownInCatchVariablescatch 语句变量默认 unknowntrue, false

4. 代码检查

配置项说明可能的值
noUnusedLocals禁止未使用的局部变量true, false
noUnusedParameters禁止未使用的函数参数true, false
noImplicitReturns要求函数必须有返回值true, false
noFallthroughCasesInSwitch禁止 switch 语句 fallthroughtrue, false
allowUnreachableCode允许无法访问的代码true, false

5. ES 特性支持

配置项说明可能的值
experimentalDecorators启用实验性的装饰器true, false
emitDecoratorMetadata生成装饰器的元数据true, false
downlevelIteration向低版本 ES 兼容迭代器true, false

6. 其他

配置项说明
baseUrl模块解析的基准路径
paths配置模块别名
types指定要包含的类型定义
allowSyntheticDefaultImports允许默认导入非 ES6 模块
forceConsistentCasingInFileNames强制文件名大小写一致

7. includeexcludefiles

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

相关文章:

  • C语言运算符优先级,简单样例理解
  • 从芯片到光网络:解密平面光波导技术(PLC)核心优势
  • 【IEEE/EI/Scopus检索】2025年3-4月传感器与信息技术、通信、软件、信号处理领域国际学术会议征稿开启!
  • 【0001】初识Java
  • 新豪轩荣登国货之光计划领航中国定制门窗发展新征程
  • 【练习】【链表】力扣热题100 19. 删除链表的倒数第 N 个结点
  • 扩散语言模型:从图像生成到文本创造的范式跃迁
  • redis事务详解
  • 【FastGPT】如何新增用户修改密码
  • [经验总结]Exec format error——Shebang解释器声明省略的锅
  • 非平衡数据的处理
  • 计算机网络——子网掩码
  • CF1363C Game On Leaves【题解】
  • 使用Nokov度量运动捕捉系统进行定位
  • Elasticsearch --- 相关基础知识整理
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(5)
  • HTML前端手册
  • AI编程,常见的AI编程工具有哪些?如何用AI编程做一个简单的小软件?
  • Axure高保真Element框架元件库
  • 无线通信中 RSRP、RSRQ、RSSI、SINR
  • 做网站baidunongmin/留号码的广告网站不需要验证码
  • 聊城做网站优化/长沙网站推广
  • 海阳网站建设/企业网站建设的基本流程
  • 做商城网站需要办理什么/如何制作网站链接
  • 城阳网站建设电话/商业软文
  • 河北省建设局材料备案网站/关键词seo价格