0

这在编译时构建没有错误,但是当我运行它时,当我尝试使用 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();
    }
} 

我尝试过的事情:

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

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

4

1 回答 1

0

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

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

于 2013-05-03T17:00:57.083 回答