我不确定如何解决这个问题,也许我做错了。我需要在不同的文件中传播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)真正的答案应该在适当的时候到来。
答案 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.