根字段
首先是 TSConfig 中的根选项 - 这些选项与 TypeScript 或 JavaScript 项目的设置方式有关。
# 文件 - files
# 扩展 - extends
extends
的值是一个字符串,包含指向另一个要继承的配置文件的路径。该路径可以使用 Node.js 风格的解析。
首先加载来自基本文件的配置,然后由继承配置中的配置覆盖。在配置文件中找到的所有相对路径将相对于它们起源的配置文件解析。
值得注意的是,来自继承配置文件的 files
、include
和 exclude
会覆盖来自基本配置文件的那些,并且不允许配置文件之间的循环引用。
目前,唯一从继承中排除的顶级属性是 references
。
示例
configs/base.json
:
{" ": {" ": true," ": true}}
tsconfig.json
:
{" ": "./configs/base"," ": ["main.ts", "supplemental.ts"]}
tsconfig.nostrictnull.json
:
{" ": "./tsconfig"," ": {" ": false}}
在配置文件中找到的具有相对路径的属性(不从继承中排除)将相对于它们起源的配置文件解析。
- 默认值
false
- 已发布
# 包含 - include
指定要包含在程序中的文件名或模式数组。这些文件名相对于包含 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
include
和 exclude
支持通配符以创建 glob 模式
*
匹配零个或多个字符(不包括目录分隔符)?
匹配任何一个字符(不包括目录分隔符)**/
匹配任何嵌套到任何级别的目录
如果模式中的最后一个路径段不包含文件扩展名或通配符,则它被视为目录,并且该目录中具有支持扩展名的文件将被包含(例如,默认情况下为 .ts
、.tsx
和 .d.ts
,如果 allowJs
设置为 true,则为 .js
和 .jsx
)。
# 排除 - exclude
# 引用 - references
项目引用是将 TypeScript 程序分解成更小部分的一种方式。使用项目引用可以极大地改善构建和编辑器交互时间,强制执行组件之间的逻辑分离,并以新的改进方式组织代码。
您可以在手册的 项目引用 部分阅读有关引用工作原理的更多信息。
- 默认值
false