Javascript 在命名空间typescript中合并接口

Javascript 在命名空间typescript中合并接口,javascript,typescript,namespaces,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()时,效果很好

我正在做一个项目,我正在努力进行名称空间合并。 我有下面的结构

// 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接口的方法。有人能帮我解决这个问题吗


谢谢

模块中声明的所有内容都适用于该模块。如果存在与模块中声明的对象同名的全局对象,则模块范围的声明会将其隐藏。函数的行为方式完全相同。您是否试图描述外部库的形状?如果我有两个同名的命名空间,那么接口不应该合并吗?我的a.d.ts中有export语句,那么这是否意味着命名空间中的接口在全局范围内不可用?如果是,那么如何从其他文件在接口IA中添加更多函数?