2013-10-28 54 views
0

我不确定如何去做这件事,也许我做错了。我需要通过不同的文件(TypeScript的JS输出显示它们在执行时将“合并”)传播相同模块('A')。实例:合并两个导出的模块

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

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

这当然包装在模块“定义()”函数,但AX file2中示出了在Visual Studio中的错误,它不存在(以及智能感知不显示它) 。如上所示,可以这样做吗?我知道我必须使用“import varname = require(...);”,但这似乎没有任何帮助。

顺便说一句:我知道使用引用,并没有帮助。

看到这里的一个例子:http://goo.gl/zlVKRv - JS代码清楚地显示了加载多个同名组合模块的支持,所以我不确定为什么编译器和intellisense不起作用。对我来说就像一个错误。

只是为了重申:主要问题是我需要编译器和智能感知从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

这是不可能的。您需要使用完全限定名称参考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 { } } 
+0

顺便说一句:我从来没有说过我想编译成一个模块;再读一遍。 –

+0

“我需要将SAME模块分布到不同的文件中”。该声明意图是什么? –

+0

那么,看看示例代码,你会看到。 –

-1

如果您使用VisualStudio,请将File1.ts拖放到File2.ts编辑器中,这将有助于IDE了解A.X.

+0

我知道使用引用,但它没有帮助。 –

+3

您不应在外部模块之间使用引用标签。 –

+0

如果他会公布游乐场参考资料,我不会这样回答我的问题。 –