库插件的typescript中的模块扩充?
我正在将Bookshelf.js与Typescript一起使用。Bookshelf允许您添加如下插件:库插件的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
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'