# 什么是 tsconfig.json

# 概述

目录中存在 tsconfig.json文件表明该目录是 TypeScript 项目的根目录。tsconfig.json文件指定编译项目所需的根文件和编译器选项。

JavaScript 项目可以改用 jsconfig.json文件,它的作用几乎相同,但默认启用了一些与 JavaScript 相关的编译器标志。

项目通过以下方式之一编译:

# 使用 tsconfig.json 或 jsconfig.json

  • 通过在没有输入文件的情况下调用 tsc,在这种情况下,编译器会从当前目录开始搜索 tsconfig.json文件,并继续沿父目录链向上。
  • 通过在没有输入文件和 --project(或只是 -p)命令行选项的情况下调用 tsc,该选项指定包含 tsconfig.json文件的目录的路径,或包含配置的有效 .json文件的路径。

在命令行上指定输入文件时,tsconfig.json文件将被忽略。

# 示例

示例 tsconfig.json文件:

  • 使用 files 属性
{
  "compilerOptions": {
    "module": "commonjs",
    "noImplicitAny": true,
    "removeComments": true,
    "preserveConstEnums": true,
    "sourceMap": true
  },
  "files": [
    "core.ts",
    "sys.ts",
    "types.ts",
    "scanner.ts",
    "parser.ts",
    "utilities.ts",
    "binder.ts",
    "checker.ts",
    "emitter.ts",
    "program.ts",
    "commandLineParser.ts",
    "tsc.ts",
    "diagnosticInformationMap.generated.ts"
  ]
}
  • 使用 includeexclude属性
{
  "compilerOptions": {
    "module": "system",
    "noImplicitAny": true,
    "removeComments": true,
    "preserveConstEnums": true,
    "outFile": "../../built/local/tsc.js",
    "sourceMap": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "**/*.spec.ts"]
}

# TSConfig 基础

根据您打算在其中运行代码的 JavaScript 运行时环境,可能有一个您可以在 github.com/tsconfig/bases 使用的基本配置。这些是您的项目扩展的 tsconfig.json文件,通过处理运行时支持来简化您的 tsconfig.json

例如,如果您正在编写一个使用 Node.js 版本 12 及更高版本的项目,那么您可以使用 npm 模块 @tsconfig/node12

{
  "extends": "@tsconfig/node12/tsconfig.json",

  "compilerOptions": {
    "preserveConstEnums": true
  },

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

这让您的 tsconfig.json专注于您项目的独特选择,而不是所有运行时机制。已经有一些 tsconfig 基础,我们希望社区可以为不同的环境添加更多。

  • 推荐
  • Node 10
  • Node 12
  • Node 14
  • Node 16
  • Deno
  • React 原生
  • Svelte

# 详情

"compilerOptions"属性可以省略,在这种情况下使用编译器的默认值。请参阅我们支持的 编译器选项 的完整列表。

# TSConfig 参考手册

要了解有关 TSConfig 参考手册 中数百个配置选项的更多信息。

# Schema

tsconfig.jsonSchema 可以在 JSON 模式存储 找到。

Last Updated: 5/25/2023, 2:35:11 PM