我正在尝试为用JavaScript编写的一些现有AMD模块编写TypeScript声明。
我想要表示的结构是一个"插件"模型,其中一个模块声明一个接口,另一个模块使用"插件"扩展该接口。我正在尝试使用模块扩充here的示例,但这似乎不允许我创建两个单独的模块。
示例:
从消费者方面来说,我希望行为如下:
// by importing this, I can use the foo singleton as type Foo with only the Foo
// functionality defined in "foo"
import { foo } from "foo";
// by also importing this, I can now use the additional Foo.plugin function defined by "foo-plugin" on the foo singleton
import "foo-plugin";
// this should compile if and only if the "foo-plugin" module is imported
foo.plugin();
这种行为可能吗?声明会是什么样的?
答案 0 :(得分:0)
我有the same problem和fastify插件声明。
declare module "foo-plugin" {
module "foo" {
function plugin(): void;
}
}