库插件的typescript中的模块扩充?

库插件的typescript中的模块扩充?,typescript,bookshelf.js,Typescript,Bookshelf.js,我正在将Bookshelf.js与Typescript一起使用。Bookshelf允许您添加如下插件: const bs = bookshelf(knex(config)); bs.plugin('registry') 注册表插件将函数添加到名为model()的bs对象中,但(查看第一个接口)不包含该函数。我如何使用模型扩充来告诉Typescript这个函数存在?我试过这个: // bookshelf-registry.d.ts import Bookshelf = require("book

我正在将Bookshelf.js与Typescript一起使用。Bookshelf允许您添加如下插件:

const bs = bookshelf(knex(config));
bs.plugin('registry')
注册表插件将函数添加到名为
model()
bs
对象中,但(查看第一个接口)不包含该函数。我如何使用模型扩充来告诉Typescript这个函数存在?我试过这个:

// bookshelf-registry.d.ts
import Bookshelf = require("bookshelf");

declare module "bookshelf" {
    export interface Bookshelf extends Bookshelf.Events<any> {
        model(name: string, model: Function);
    }
}
//bookshelf-registry.d.ts
导入书架=需要(“书架”);
将模块声明为“书架”{
导出接口Bookshelf扩展Bookshelf.Events{
模型(名称:字符串,模型:函数);
}
}
然后,当我创建bookshelf对象时,我会在文件的顶部添加
//

但是,我仍然会遇到此错误:
类型“Bookshelf”上不存在属性“model”。


我在这里遗漏了什么?

看起来应该有用。一个猜测是名字冲突。您能否尝试导入BS=…,这样它就不会与您试图扩充的
书架发生冲突?嘿,谢谢您的评论。是的,我试过了,但似乎还是没人捡到。我不知道编译器是否在考虑我的文件,但我不知道如何检查。检查书架上的打字。如果它包含重新导出,则模块扩充不起作用。存在一个问题跟踪this@unional什么是“再出口”?
export*from./a'