TSConfig 配置选项全解

TSConfig 是 TypeScript 编译器的配置文件,用于指定 TypeScript 编译器的行为。TSConfig 以 JSON 格式存储,并且支持许多配置选项,包括编译器选项、文件列表和 TSConfig 继承等。

compilerOptions

compilerOptions 是 TSConfig 中最常用的选项之一,用于指定 TypeScript 编译器的行为。以下是常见的 compilerOptions 配置选项:

  • target: 编译代码的目标 JavaScript 版本。默认为 ES3。可选值包括 ES3、ES5、ES6/ES2015、ES2016、ES2017、ES2018、ES2019、ES2020、ES2021、ESNext。
  • module: 代码生成的模块系统。默认为 CommonJS。可选值包括 CommonJS、AMD、System、UMD、ES2015、ES2020、ESNext。
  • lib: 编译过程中需要引入的库文件。默认情况下,编译器会自动包含与目标版本相对应的库文件。如果需要手动指定,可设置为一个数组,包含要引入的库的名称。
  • allowJs: 允许编译 JavaScript 文件。默认为 false。
  • checkJs: 在编译 JavaScript 文件时检查类型。默认为 false。

除了上面列出的选项外,还有其他许多可选的选项。例如,以下是一些其他常见的选项:

  • declaration: 生成 .d.ts 声明文件。默认为 false。
  • sourceMap: 生成 .map 文件以便调试。默认为 false。
  • outDir: 输出文件的目录。默认为当前目录。
  • rootDir: 源代码的根目录。默认为当前目录。
  • strict: 开启所有严格类型检查选项。默认为 false。

files

files 是一个指定文件列表的选项。只有在这个列表中列出的文件才会被编译器处理。以下是一个 files 选项的示例:

{
  "files": [
    "app.ts",
    "helpers.ts"
  ]
}

在这个示例中,只有 app.tshelpers.ts 会被编译器处理。

include 和 exclude

includeexclude 是指定文件匹配模式的选项。使用这些选项,可以指定编译器应该编译哪些文件,哪些文件应该被忽略。以下是一个 includeexclude 选项的示例:

{
  "include": [
    "src//*"
  ],
  "exclude": [
    "node_modules",
    "/*.test.ts"
  ]
}

在这个示例中,include 模式匹配项目中的所有 .ts.tsx 文件。exclude 模式忽略 node_modules 目录和所有以 .test.ts 结尾的文件。

extends

extends 是 TSConfig 的一个高级选项,它允许你在一个 TSConfig 文件中继承另一个 TSConfig 文件的选项。以下是一个 extends 选项的示例:

{
  "extends": "./base.json",
  "compilerOptions": {
    "outDir": "./dist"
  }
}

在这个示例中,当前的 TSConfig 文件继承了 ./base.json 文件中的所有选项,并且覆盖了 compilerOptions 中的 outDir 选项。

References

references 选项是 TypeScript 中的项目引用系统。它允许你在多个 TypeScript 项目之间共享代码和类型定义。以下是一个 references 选项的示例:

{
  "references": [
    { "path": "../shared-types" },
    { "path": "../shared-code" }
  ]
}

在这个示例中,references 选项引用了两个不同的 TypeScript 项目,并且这两个项目中的代码和类型定义可以在当前项目中使用。

Conclusion

这篇文章详细介绍了 TSConfig 的各种选项和用法。了解这些选项和用法可以帮助你更好地配置 TypeScript 编译器,并且更好地管理你的 TypeScript 项目。如果你想深入了解 TypeScript,请查看 TypeScript 官方文档。

作者:刘涛