当前位置: 首页 > 知识库问答 >
问题:

IDE可识别但TSC不能识别的D.TS接口扩展

戚繁
2023-03-14

我在webstorm中使用ES6风格的模块包含,我有一个express应用程序,它有一个自定义的d.ts(用于更改对象的中间件),类似于以下内容:

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

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

(Express.d.ts extends应用程序中的Express,该应用程序包含其他文件中的增强项。)

所以我很困惑,为什么它在IDE中工作,而在TSC中却不工作,因为TSC包括一个键入目录中的所有*.d.ts文件,在D.ts文件中没有列出错误,只是在这个特定的D.ts中定义的用法。

共有1个答案

羊舌富
2023-03-14

TSC它会爆炸,说“get repository”在类型“application”上不存在

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

 类似资料:
  • 我已经将我的站点部署到heroku,现在我正试图将我的本地数据库向上推,但不断得到这个错误: 未知数据库: heroku配置:获取DATABASE_URL 并使用返回的值。我尝试重置DATABASE_URL,但仍然得到相同的错误。如有任何帮助,不胜感激,谢谢!

  • 我将TestNG添加到我的pom.xml中,然后它就被导入了。我可以使用TestNG注释,但是当我试图设置优先级时,它无法识别它。我是不是漏掉了什么?以下是我正在使用的Intellij版本: IntelliJ IDEA 2020.2(社区版) 构建#ic-202.6397.94,构建于2020年7月27日 运行时版本:11.0.7+10-b944.20 amd64 VM:OpenJDK 64位服务

  • 我从VSCode 0.10.6更新到0.10.8,并第一次尝试使用Typescript。不幸的是,当我告诉VSCode构建时,我得到了错误: 我根据VS代码说明创建了一个新的“HelloWorld”项目。这包括: 我为一个新的package.json运行了 我运行,因为我想要本地安装,而不是全局安装。 我创建了一个launch.json来定义Node.js项目。 我创建了tasks.json文件,

  • 我用如下命令创建项目 npm init vue@latest 创建过程中选择了pinia,但是main.js中导入pinia模块时不能被识别: import { createPinia } from 'pinia' 这句里面的pinia和Pinia均提示为“Unknown word”.

  • 在roles/ansible-role-deploy-other-thing/tasks/main.yml中,以下内容被称为: 运行时,此会导致以下错误: 错误!在/users/myuser/playbooks/deploy-thing/roles:/users/myuser/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/u