Skip to content
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待

根字段

首先是 TSConfig 中的根选项 - 这些选项与你的 TypeScript 或 JavaScript 项目如何设置有关。

files

指定要包含在程序中的文件的白名单。如果找不到任何文件,则会发生错误。

json
{
  "compilerOptions": {},
  "files": [
    "core.ts",
    "sys.ts",
    "types.ts",
    "scanner.ts",
    "parser.ts",
    "utilities.ts",
    "binder.ts",
    "checker.ts",
    "tsc.ts"
  ]
}

当你只有少量文件并且不需要使用 glob 来引用许多文件时,这很有用。 如果你需要那样,则使用 include

extends

  • 默认值: false

  • 发布版本: 2.1

extends 的值是一个字符串,其中包含要继承的另一个配置文件的路径。 该路径可以使用 Node.js 风格解析。

首先加载基础文件中的配置,然后由继承配置文件中的配置覆盖。配置文件中找到的所有相对路径都将相对于它们所在的配置文件进行解析。

值得注意的是,继承配置文件中的 filesincludeexclude 覆盖基础配置文件中的这些字段,并且不允许配置文件之间的循环。

目前,唯一被排除在继承之外的顶级属性是 references

示例

configs/base.json

json
{
  "compilerOptions": {
    "noImplicitAny": true,
    "strictNullChecks": true
  }
}

tsconfig.json

json
{
  "extends": "./configs/base",
  "files": ["main.ts", "supplemental.ts"]
}

tsconfig.nostrictnull.json

json
{
  "extends": "./tsconfig",
  "compilerOptions": {
    "strictNullChecks": false
  }
}

在配置文件中找到的、未被排除在继承之外的具有相对路径的属性,将相对于它们所在的配置文件进行解析。

include

  • 默认值: 如果指定了 files,则为 [];否则为 **/*

  • 发布版本: 2.0

  • 相关: files,exclude

指定要包含在程序中的文件名或模式数组。 这些文件名是相对于包含 tsconfig.json 文件的目录进行解析的。

json
{
  "include": ["src/**/*", "tests/**/*"]
}

这将包含:

.
├── scripts                ⨯
│   ├── lint.ts            ⨯
│   ├── update_deps.ts     ⨯
│   └── utils.ts           ⨯
├── src                    ✓
│   ├── client             ✓
│   │    ├── index.ts      ✓
│   │    └── utils.ts      ✓
│   ├── server             ✓
│   │    └── index.ts      ✓
├── tests                  ✓
│   ├── app.test.ts        ✓
│   ├── utils.ts           ✓
│   └── tests.d.ts         ✓
├── package.json
├── tsconfig.json
└── yarn.lock

includeexclude 支持通配符以制作 glob 模式:

  • * 匹配零个或多个字符(不包括目录分隔符)
  • ? 匹配任意一个字符(不包括目录分隔符)
  • **/ 匹配任意嵌套到任何级别的目录

如果模式中的最后一个路径段不包含文件扩展名或通配符,则将其视为目录,并且包含该目录中具有受支持扩展名的文件(例如,默认情况下为 .ts.tsx.d.ts,如果 allowJs 设置为 true,则还包括 .js.jsx)。

exclude

  • 默认值: node_modules bower_components jspm_packages outDir

  • 发布版本: 2.0

  • 相关: include,files

指定在解析 include 时应跳过的文件名或模式数组。

重要exclude 更改作为 include 设置结果而包含的文件。 由于代码中的 import 语句、types 包含、/// <reference 指令或在 files 列表中指定,由 exclude 指定的文件仍可能成为代码库的一部分。

它不是阻止文件被包含在代码库中的机制 - 它只是改变了 include 设置找到的内容。

references

  • 默认值: false

  • 发布版本: 3.0

项目引用是一种将 TypeScript 程序结构化为更小部分的方式。 使用项目引用可以显著改善构建和编辑器交互时间,强制组件之间的逻辑分离,并以新的和改进的方式组织代码。

你可以在手册的项目引用部分阅读更多关于引用如何工作的信息。