2014-03-03 102 views
3

我想將根名稱空間構建到外部模塊的程序集中。
例如:在TypeScript 0.9中將外部模塊與內部模塊組合使用

// File structure (every file is class or interface export) 
Deferred/Deferred.ts 
Deferred/Promise.ts 
WebApp/ClassOne.ts 
WebApp/ClassTwo.ts 

我希望它組件:

Deferred.js 
WebApp.js 

而且兩者的那些文件都是AMD模塊,所以在Deferred.js(和WebApp.js)是一樣的東西:

define("Deferred", [], function() { 
    (function(Deferred){ 
     // Here is a definition of a module with submodules 
    })(var Deferred || (Deferred = {})); 

    return Deferred; 
}); 

如何做到這一點?

+1

Typescript無法使用AMD或CommonJS模塊組合TS文件。你將不得不在發佈後自己做。 –

+0

@RobertSlaney你可以給小費怎麼做? – Flion

+1

@FlyOn做一個basarat說。只使用外部模塊,編寫代碼後用r.js優化它(這會丟棄不必要的外部請求)。 –

回答

2

創建一個類似的文件結構:

// File structure (every file is class or interface export) 
Deferred/Deferred.ts 
Deferred/Promise.ts 
Deferred/index.ts 
WebApp/ClassOne.ts 
WebApp/ClassTwo.ts 
WebApp/index.ts 

如果每個index.ts進口和轉口的所有從該文件夾的東西。例如Deferred/index.ts

import deferred_file = require('./Deferred'); 
export var deferred = deferred_file; 
import promise_file = require('./Promise'); 
export var promise = promise_file; 

然後編譯這個index.tsamd標誌,並使用r.js運行如下:http://requirejs.org/docs/optimization.html

PS:有在咕嚕-TS正在做創建這些index.ts文件爲你工作:https://github.com/grunt-ts/grunt-ts/pull/69您可以工作,如果你想。

+0

commonjs可能類似嗎? – Flion

+1

是的https://github.com/grunt-ts/grunt-ts#transforms只是用'--module commonjs'編譯TypeScript爲你做了正確的代碼 – basarat

相關問題