我在使用 RequireJs 连接某些 typescript 类时遇到问题。 在 .ts 文件中,我使用模块语法和 AMD 模块。我的主文件是 GameLoader.ts,它返回游戏的实例。例如,我正在创建 World 实例:
import World = require('Resources/Scripts/Game/Entities/Game/World');
...
var world = new World(json.world.level, json.world.size, json.world.passMap);
它工作得很好 - 世界真正需要的功能
但同时同一个文件(GameLoader.ts):
import Camera = require('Resources/Scripts/Game/Presentation/Camera/Camera');
...
var camera = new Camera();
相机是空对象(而不是函数) 未捕获的类型错误:相机不是函数 文件已加载,但调试器显示其内容未使用 - 函数定义内的断点不起作用。但在 World 中,断点是在加载主程序之前触发的。
寻找错误我试图从 Camera.ts 中删除所有内容。 删除后,我以相同的方式从另一个文件(temp.ts)调用空相机:
import c = require('Resources/Scripts/Game/Presentation/Camera/Camera');
var cam = new c();
console.log(cam);
并且成功了。
在这两种情况下,编译器(针对 Camera.js)生成的 Ts 代码看起来是相同的。 使用相同的方式调用编译文件 - 通过调用 RequireJs API。
也许问题是指向文件 GameLoader 的循环引用? 但是我的应用程序是从游戏类(从 GameLoader 导出的实例)构建的,仅在其实例中使用。
抱歉我的英语不好。
最佳答案
Perhaps the problem is cyclical references that point to a file GameLoader?
也许吧。尝试一下atom-typescript中的依赖 View https://github.com/TypeStrong/atom-typescript#dependency-view
关于javascript - 使用 requireJS 加载一些 typescript 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34601356/