You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不覆盖原有配置的前提下扩展TypeScript的include项?

解决方法:合并父配置的include与自定义规则

TypeScript 的配置继承机制中,子配置如果显式声明了 include 字段,会直接覆盖父配置的 include 数组,而不是自动合并。要实现「保留父配置原有文件 + 添加新文件」的需求,你可以选择以下两种方案:

方案1:将配置文件改为JS格式(推荐,自动同步父配置)

把 tsconfig.lib.json 重命名为 tsconfig.lib.js,这样就能使用 JavaScript 的语法来读取并合并父配置的 include 规则:

const baseConfig = require('../../tsconfig.json');

module.exports = {
  extends: '../../tsconfig.json',
  exclude: ['src/test.ts', '**/*.spec.ts'],
  include: [...baseConfig.include, '**/*.stories.ts']
};

这样做的好处是,父配置的 include 有任何修改,子配置会自动同步,不需要手动维护。注意要确保你的 TypeScript 版本支持这种 JS 格式的配置文件(TS 2.1+ 就支持了)。

方案2:手动合并父配置的include规则(简单但需手动同步)

如果你不想改成JS格式,可以先查看父配置 ../../tsconfig.json 里的 include 内容,然后将它和你的新规则一起写到子配置的 include 数组中。

比如假设父配置的 include 是 ["src/**/*"],那么子配置就写成:

{
  "extends": "../../tsconfig.json",
  "exclude": ["src/test.ts", "**/*.spec.ts"],
  "include": ["src/**/*", "**/*.stories.ts"]
}

这种方式的缺点是,如果父配置的 include 后续有变更,你需要手动更新子配置的数组,否则会丢失父配置的规则。

额外注意:路径的相对位置

include 中的路径是相对于当前配置文件所在目录的,所以如果父配置的 include 用了相对路径,要确保子配置里的路径解析正确,避免出现文件找不到的问题。

内容的提问来源于stack exchange,提问作者Eliezer Berlin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:02:18