tsconfig.json:类型文件在“文件”中有效,但在“包含”中无效

问题描述 投票:0回答:1

在我的 TypeScript 项目中,我扩展了快速请求类型以添加自己的属性。我有一个文件

src/types/index.d.ts
,看起来与此类似:

declare module 'express-serve-static-core' {
  interface Request {
    customFlag?: boolean;
  }
}

我的

tsconfig.json
的一部分看起来像这样:

"include": [
    "src/**/*.ts",
    "./server.ts"
],

当我运行该项目时,它在使用

req.customFlag
时崩溃(表示该类型不存在该属性)。 如果我修改我的
tsconfig.json
如下:

"include": [
    "src/**/*.ts",
    "./server.ts"
],
"files": [
    "src/types/index.d.ts"
],

它开始顺利工作。

这是为什么呢?我对 TS 文档的理解是

include
files
的解释方式相同,唯一的区别是第一个允许指定模式。

如果我运行

tsc --listFiles --noEmit
,则两个配置的结果都包含
src/types/index.d.ts
。然而对于第一个它不起作用。

typescript build tsconfig
1个回答
0
投票

我认为表达式

src/**/*.ts
与文件名中的两个点
index.d.ts
不相符。

因此,您可以重命名文件以仅包含一个点或尝试调整表达式。
这只是一个示例,假设您可能想要包含文件名中带有一个或两个点的所有文件,这可能是完全错误的

src/**/*?.?*.ts

文档中的重要页面是关于 include

© www.soinside.com 2019 - 2024. All rights reserved.