引用嵌套的TypeScript模块

时间:2015-05-24 14:00:13

标签: javascript intellij-idea module typescript

我有以下情况:

/*file A/Z.ts*/
///<reference path="B/Y.ts"/>
module A{
    import Y = B.Y;
    export class Z{
        //use class Y
    }
}


/*file A/B/Y.ts*/
///<reference path="../Z.ts"/>
module A.B{
    import Z = A.Z;
    export class Y{
        //use class Z
    }
}

这似乎编译正常,但我得到javascript问题。 在chrome dev控制台中调用var y = new Y()时,我得到:Uncaught TypeError: undefined is not a function并查看生成的JavaScript,IntelliJ代码检查指出B是私有且无法访问。

值得注意的是,我的所有.ts都被编译成一个文件。

编辑:进一步检查是一个订购问题。在生成的javascript中移动声明修复了JavaScript错误。 这个问题才出现在我开始在模块中包装我的类时。即订购是很好的前模块,让我认为我的所有参考都没问题。

TSC版本为1.5.0-beta

1 个答案:

答案 0 :(得分:0)

我认为这是一个订购问题。我通过重新审核///<reference path=""/>语句并从///<reference path="../Z.ts"/>删除Y.ts来修复此问题。

阅读this后 似乎不需要它,因为编译器已经在此阶段加载了Z.ts并且包括它只是改变了顺序。