有没有办法将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();
最佳答案
这不是受支持的模式。我建议您在 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)时,我建议不要使用内部模块
。请参阅:http://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1
关于TypeScript 按部分定义 AMD 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21997914/