Express d、 ts接口扩展由IDE识别,但不由TSC识别

Express d、 ts接口扩展由IDE识别,但不由TSC识别,express,typescript,Express,Typescript,我在webstorm中使用ES6风格的模块包含,我有一个express应用程序,它有一个定制的d.ts(用于改变对象的中间件),看起来像这样: declare module Express { export interface Application { getLogger(): LoggerInstance; getRepository(collectionName): IRepository; getEnvironmentVars():

我在webstorm中使用ES6风格的模块包含,我有一个express应用程序,它有一个定制的d.ts(用于改变对象的中间件),看起来像这样:

declare module Express {
    export interface Application {
        getLogger(): LoggerInstance;
        getRepository(collectionName): IRepository;
        getEnvironmentVars(): any;
    }
}
现在IDE看到了这一点,并且每当我使用它时都没有错误,但是当我通过TSC运行它时,它会说,
“getRepository”在类型“Application”上不存在。

我有很多其他的d.ts文件,它们工作得很好,但是没有列出错误,也没有什么奇怪的地方

这方面的一个示例用例可能是:

import { Express } from "express"

export function SomeMiddleWare(app: Express){...};
(Express.d.ts中的Express扩展了应用程序,该应用程序包含另一个文件中的扩展。)

因此,我对它为什么在IDE中工作而在TSC中不工作感到困惑,因为TSC在一个键入目录中包含所有*.d.ts文件,在d.ts文件中没有列出错误,只是在这个特定的d.ts中定义了用法

TSC它爆料说“应用程序”类型上不存在“getRepository”

确保使用类似于
tsconfig.json的内容将这个新的
.d.ts
包含在tsc的编译上下文中

TSC它爆料说“应用程序”类型上不存在“getRepository”


确保这个新的
.d.ts
包含在tsc的编译上下文中,使用类似于
tsconfig.json

的内容来运行tsc?它通过gulp typescript运行,并传递源文件和键入文件。我知道这与其他5个项目使用的构建脚本完全相同,它们遵循相同的约定(
src
文件夹用于源文件,
typing
文件夹用于类型文件),它包括所有子目录中的source中的所有ts和typings文件夹中子目录中的所有d.ts文件。此外,我还有3个其他自定义d.ts文件,它们扩展了mongodb和其他LIB,它们都被正确使用,并且与此d.ts文件位于同一个文件夹中,该文件不正常。您使用什么参数/配置来运行tsc?它通过gulp typescript运行,并传递源文件和键入文件。我知道这与其他5个项目使用的构建脚本完全相同,它们遵循相同的约定(
src
文件夹用于源文件,
typing
文件夹用于类型文件),它包括所有子目录中的source中的所有ts和typings文件夹中子目录中的所有d.ts文件。此外,我还有3个其他自定义d.ts文件,它们扩展了mongodb和其他LIB,它们都被正确使用,并且与此d.ts文件位于同一文件夹中,但该文件不正常。在尝试了几个小时的不同操作后,实际问题似乎与无法导入IRepository类型有关,但是静默失败,然后忽略其余的d.T,如果我将所有设置为return type
any
,则一切正常。在尝试了几个小时的不同操作后,实际问题似乎与无法导入IRepository类型有关,但静默失败,然后忽略其余的d.T,如果我将所有内容都设置为return type
any