我使用RequireJs連接一些打字稿類時遇到問題。 在.ts文件中,我使用模塊語法和AMD模塊。我的主文件是GameLoader.ts,它返回遊戲的一個實例。還有比如我creaiting世界例如:使用requireJS加載一些打字稿模塊
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();
相機是空的物體(而不是功能)未捕獲類型錯誤:相機不是函數 該文件被加載,但調試器顯示其內容a未使用 - 函數定義中的斷點不起作用。但是在加載主程序之前觸發世界斷點。
尋找錯誤我試圖從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導出的實例)構建,僅用於他們的實例。
對不起,我的英語不好。
Camera是否有定義函數並返回正確的對象? – rainerhahnekamp
是的。 Camera.js以define函數開始。 她在相機功能(TS中的類)返回參考。但由於GameLoader的某些原因,它只是空的對象。 –