TypeScript按部件定义AMD模块

时间:2014-02-24 20:08:19

标签: typescript amd

是否可以将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();

1 个答案:

答案 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