是否可以将AMD模块的定义拆分为多个文件?
我的意思是:
// file WebApp/Deferred.ts
export module WebApp {
export class Deferred {
//...
}
}
// file WebApp/Promise.ts
export module WebApp {
export class Promise {
//...
}
}
// file init.ts
import WebApp = require("WebApp/Deferred", "WebApp/Promise"); // This is incorrect TS synatax
var a = new WebApp.Deferred();
答案 0 :(得分:2)
这不是受支持的模式。我建议你在WebApp
中创建一个index.ts文件,然后从那里导出常用的东西。示例index.ts
:
import deferred = require('./Deferred');
import promise = require('./Promise');
export var Deferred = deferred.WebApp.Deferred;
export var Promise = promise.WebApp.Promise;
所以在init.ts
:
import WebApp = require("WebApp/index");
var a = new WebApp.Deferred();
这是node.js上的常见模式,人们在文件夹中创建index.js文件。实际上,node.js提供了import语句的简写,并且有一个针对TypeScript的相关功能请求:https://typescript.codeplex.com/workitem/2125
PS:我建议您在使用外部模块(amd / commonjs)时不要使用internal modules
。见:http://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1