0

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

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

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

这当然将模块包装在“define()”函数中,但是 file2 中的 AX 在 Visual Studio 中显示它不存在的错误(并且智能感知没有显示它)。是否可以如上所示执行此操作?我知道我必须使用“import varname = require(...);”,但这似乎没有任何帮助。

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

请参阅此处的示例: 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) 一个真正的答案应该在适当的时候出现。

4

2 回答 2

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 { } }
于 2013-10-28T15:33:45.150 回答
-1

如果您使用的是 VisualStudio,请尝试将 File1.ts 拖放到 File2.ts 编辑器中,这应该有助于 IDE 理解 AX

于 2013-10-28T14:49:12.973 回答