使用 requireJS 加载一些 typescript 模块

loading some typescript modules with requireJS

我在使用 RequireJs 连接某些打字稿 类 时遇到问题。 在 .ts 文件中,我使用模块语法和 AMD 模块。我的主文件是 GameLoader.ts,其中 returns 是游戏的一个实例。例如,我正在创建 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);

成功了。

Ts 由编译器(Camera.js)生成的代码在这两种情况下看起来是一样的。 以相同的方式调用已编译的文件 - 通过调用 RequireJs API.

也许问题是指向文件 GameLoader 的循环引用? 但是我的应用程序是从 类 构建的那个游戏(从 GameLoader 导出的实例)只在他们的实例中使用。

抱歉我的英语不好。

Perhaps the problem is cyclical references that point to a file GameLoader?

可能吧。试一试 atom-typescript 中的依赖项视图 https://github.com/TypeStrong/atom-typescript#dependency-view

我用 RequireJs 开了一枪。那里的问题是我试图从共享模块 return instance 。每个依赖项都试图创建新的。所以第一次 - 就我而言 - 一些模块在加载其他部门阶段时丢失了。