TSConfig文件详解03

顶层配置字段

顶层配置字段是TSConfig文件的顶层配置项,这些配置项决定了TypeScript或者JavaScript项目的设置方式。

文件配置项-files

指定要包含在程序中的文件的允许列表,如果该列表中的文件找不到,将会在类型检查/编译时报错。主要应用于程序包含较少的文件,如果包含的文件较多,可以通过glob的方式设置顶层配置项include

默认值: false

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

扩展配置项-extends

配置项的值是一个字符串,为要继承的另一个配置文件的路径,该路径应该可以通过Node.js解析,如果路径为相对路径,那么这相对路径为基于当前配置文件的相对路径。

首先加载配置文件中extends配置的文件,如果当前的配置项和继承的配置文件的配置项冲突,那么当前配置项将覆盖继承配置项。

默认值: false

# tsconfig.base.json
{
  "compilerOptions": {
    "noImplicitAny": true,
    "strictNullChecks": true
  }
}

> 值得注意的是,当前配置文件中的`files`、`include`和`exclude`会覆盖继承的配置文件中的`files`、`include`和`exclude`,并且配置文件之间不允许循环继承。

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

当前配置文件中的filesincludeexclude会覆盖继承的配置文件中的filesincludeexclude,并且配置文件之间不允许循环继承。

包含配置项-include

包含配置项指定一个文件名称或者glob模式的数组,文件名称的路径为相对于当前配置文件所在的目录。

默认值:如果配置了files,为[],否则为**/*

# tsconfig.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模式的通配符

  • *:匹配除路径分隔符之外的0个或多个字符(>=0)
  • ?:匹配除路径分隔符之外的多个字符(>=1)
  • **/:匹配多个层级的目录
    如果模式中最后一段不包含文件扩展名或者通配符,那么匹配该目录下的所有文件(支持的文件扩展为:.ts,.tsx,.d.ts,如果allowJs配置为true,还支持.js,.jsx

排除配置项-exclude

指定在解析include配置的文件时应该排除在外的文件名称或者glob模式数组。

默认值:node_modules, bower_components,jspm_packages,outDir配置的值

  1. 不是为了阻止文件包含在代码中的目的
  2. 仅仅改变include匹配的文件的结果
  3. 如果在代码中通过import引入,或者类型引入,/// <reference包含,files中包含,仍然会包含exclude排除的文件

参考配置项-references

references配置项是一种将 TypeScript 程序构建为更小的片段的方法。使用references可以极大地缩短构建、编辑器交互的时间,组件之间的逻辑分离,改善代码组织结构,了解references如何工作的更多信息可以参考 Project References

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339

推荐阅读更多精彩内容