d.ts接口扩充被IDE识别但不被TSC识别

时间:2015-10-29 08:43:31

标签: express typescript

我在webstorm中使用ES6样式模块,我有一个快速应用程序,它有一个自定义d.ts(对于改变对象的中间件),看起来像这样:

declare module Express {
    export interface Application {
        getLogger(): LoggerInstance;
        getRepository(collectionName): IRepository;
        getEnvironmentVars(): any;
    }
}

现在IDE看到了这一点,每当我使用它时都没有错误,但是当我通过TSC运行时它会爆炸说'getRepository' does not exist on type 'Application'

我有很多其他d.ts文件工作正常,但没有列出错误,没有什么奇怪我可以在那里看到。

此示例用例可能是:

import { Express } from "express"

export function SomeMiddleWare(app: Express){...};

(express.d.ts中的Express扩展了包含其他文件中的扩充的Application。)

所以我很困惑为什么它在IDE中有效,但在TSC中没有,包括输入目录中的所有* .d.ts文件,d.ts文件中没有列出任何错误使用在此特定d.ts。

中定义的用法

1 个答案:

答案 0 :(得分:0)

  

TSC爆炸说'应用'

类型上不存在'getRepository'

确保使用类似.d.ts

之类的内容将新tsconfig.json包含在tsc的编译上下文中