tsconfig 使用详解

说明 tsconfig.json 如何定义 TypeScript program 的边界、编译选项与项目引用规则。

#tech / dev #resource / typescript #type / concept #status / growing

[!info] related notes

tsconfig 使用详解

基础概念

tsconfig.json 是 TypeScript 编译器选项与文件边界的配置文件,用来定义一个 TypeScript program 应该如何被理解、检查和构建。

使用指南

单包项目的最小例子

{
  "compilerOptions": {
    "target": "ES2022",
    "module": "ESNext",
    "rootDir": "src",
    "outDir": "dist",
    "strict": true,
    "esModuleInterop": true,
    "declaration": true
  },
  "include": ["src/**/*"]
}

Monorepo 示例

{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "composite": true,
    "declaration": true,
    "outDir": "dist",
    "rootDir": "src"
  },
  "include": ["src/**/*"]
}

按知识结构看常见选项

program 边界与输出结构

类型检查基线

控制流与代码卫生

JS 共存与迁移

全局类型与声明文件边界

声明与项目构建

模块系统与模块解析

模块互操作与单文件转译

已被替代的旧模块 emit 选项

路径映射与虚拟目录

经验总结

  • 单仓项目先关注 include/exclude、strict、module、target 这些基本边界。
  • monorepo 项目再进一步关注 compositedeclarationreferences 与包边界。
  • tsconfig 越往后越不适合继续堆在一篇总览里;一旦出现模块解析、产物目录、project references 这些稳定主题,就值得拆成原子页。

参考信息

创建于 2025/12/24 更新于 2026/5/27