注释引用的类在运行时抛出ReferenceError

时间:2013-05-03 16:59:16

标签: javascript typescript amd durandal

这在构建时没有错误构建,但是当我运行它时,当我尝试使用net类时,我得到一个ReferenceError。 (净未定义)

//chat.ts file
/// <reference path="../client/net.ts" />
class chat {
    constructor(public chatHub: any) {
       net.call(chatHub.server.getUsers());
    } 
}

//net.ts file
class net {
    public call(callback: () => any): any {
        //stuff here
        return callback();
    }
} 

我尝试的事情:

  • 将网络转换为模块并导出该功能。无法工作,因为执行导出会触发AMD模块转换,然后需要在我的聊天类中导入它,这会将我的聊天类转换为AMD模块,使其超出引用chat.ts的所有类的范围。 AMD死命的级联。
  • 尝试了静态,公共,模块,类和导出的所有可能的排列。没有骰子。

我想要做的就是在我的聊天课上使用网络课程中的实用程序功能。

1 个答案:

答案 0 :(得分:0)

您是否记得将net.js文件添加到页面(chat.js文件上方的某个位置)?只需在TypeScript中引用它就不会为你加载它。

您需要将AMD模块定义与require.js之类的加载器结合使用,或者确保将所需的所有.js文件添加到您的页面(一次一个,或捆绑)。所有注释引用都告诉编译器在哪里可以找到类型信息。