合并名称空间打字稿中的接口

时间:2020-06-10 13:06:25

标签: javascript typescript namespaces

我正在开发一个项目,并且正在努力进行名称空间合并。 我有以下结构

// file a.d.ts
declare namespace A{
    interface IA{
       bar()
    }
    interface IB{
       //..stuff
    }
}
declare const foo: A.IA;
export = foo;
export as namespace foo;

当我在myfile.ts中导入上述名称空间并尝试访问bar()时,它工作正常。

// myfile.ts
import * as foo from 'a'
foo.bar() //works fine

现在我还有另一个文件b.d.ts,我想在其中添加更多内容到现有的命名空间A

//file b.d.ts
declare namespace A{
    interface IA{
       function bar2()
    }
}

由于b.d.ts文件中没有顶级导入/导出,因此它不应该在全局范围内运行并合并两个IA接口吗? 但是我在myfile.ts中看不到bar2()函数。

import * as foo from 'a'
console.log(foo); // output has only bar1() and no bar2()

我想要一种将bar2()函数添加到b.d.ts文件中的IA接口的方法。有人可以帮我吗

谢谢

0 个答案:

没有答案