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

xer*_*iee 7 build typescript tsconfig

在我的 TypeScript 项目中,我正在扩展快速请求类型以添加​​自己的属性。src/types/index.d.ts我有一个与此类似的文件:

declare module 'express-serve-static-core' {
  interface Request {
    customFlag?: boolean;
  }
}
Run Code Online (Sandbox Code Playgroud)

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

"include": [
    "src/**/*.ts",
    "./server.ts"
],
Run Code Online (Sandbox Code Playgroud)

当我运行该项目时,它在req.customFlag使用时崩溃(表示该类型不存在该属性)。如果我修改tsconfig.json如下:

"include": [
    "src/**/*.ts",
    "./server.ts"
],
"files": [
    "src/types/index.d.ts"
],
Run Code Online (Sandbox Code Playgroud)

它开始顺利工作。

这是为什么?我对 TS 文档的理解是includefiles的解释方式相同,唯一的区别是第一个允许指定模式。

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

Dav*_*vid 0

我认为该表达式src/**/*.ts与文件名中的两个点不匹配index.d.ts

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

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