合并两个导出的模块

时间:2013-10-28 14:36:26

标签: typescript

我不确定如何解决这个问题,也许我做错了。我需要在不同的文件中传播SAME模块('A')(TypeScript的JS输出显示它们将在执行时“合并”)。例子:

---File1.ts---
export module A { export class X { } }

---File2.ts---
export module A { export class Y extends X { } }

这当然将模块包装在“define()”函数中,但是文件2中的A.X在Visual Studio中显示它不存在的错误(并且智能感知不会显示它)。是否有可能如上所示这样做?我知道我必须使用“import varname = require(...);”,但这似乎没有任何帮助。

BTW:我知道使用引用,但没有用。

请参见此处的示例:http://goo.gl/zlVKRv - JS代码清楚地显示了对组合使用相同名称的多个模块的支持,因此我不确定为什么编译器和智能感知不起作用。对我来说似乎是一个错误。

重申一下:主要问题是我需要编译器和智能感知来将“依赖模块”视为来自file2的模块。

我希望做的是这样的事情:

import mod = require("test1");
import A = mod.A;

export module A {
    export class Y extends X {
    }
}

更新1:提交此相关请求以使此流程正常运行,或者至少提供类似的内容: https://typescript.codeplex.com/workitem/1846

更新2:似乎这种能力在团队的雷达上! 8)真正的答案应该在适当的时候到来。

2 个答案:

答案 0 :(得分:2)

这是不可能的。您需要通过其完全限定名称引用X,即:

---File1.ts---
export module A { export class X { } }

---File2.ts---
import f1 = require('./File1');
export module A { export class Y extends f1.A.X { } }

答案 1 :(得分:-1)

如果您正在使用VisualStudio,请尝试将File1.ts拖放到File2.ts编辑器上,这应该有助于IDE了解A.X.