2012-10-18 7 views
10

C'è un modo per creare moduli AMD non anonimi in Typescript. Quando mi definisco un modulo come questo:Creazione di moduli AMD non anonimi in TypeScript

export module Bootstrapper { 
    export function run() { 
    var i = 0; 
    } 
} 

il codice generano è:

define(["require", "exports"], function(require, exports) { 
    (function (Bootstrapper) { 
    function run() { 
     var i = 0; 
    } 
    Bootstrapper.run = run; 
    })(exports.Bootstrapper || (exports.Bootstrapper = {})); 
}) 

Come posso definire un modulo non anomymous come questo:

define('bootstrapper', ["require", "exports"], function(require, exports) { 
    (function (Bootstrapper) { 
    function run() { 
     var i = 0; 
    } 
    Bootstrapper.run = run; 
    })(exports.Bootstrapper || (exports.Bootstrapper = {})); 
}) 
+1

si può sempre scrivere il codice a mano requirejs –

risposta

2

Come si può vedere nel file emitter.ts alla riga 1202 (effettuare una ricerca per " var dependencyList = ") non è prevista alcuna implementazione.

È possibile aprire un problema su codeplex su di esso.

1

A partire da TS 0.9.x non è possibile assegnare un nome a un modulo AMD. Il compilatore TS genera solo definire dichiarazione nel formato

define(['dep1', 'dep2', ..., 'depN'], function(__dep1__, __dep2__, ..., __depN__) {... }); 

discussione sul forum di TS: https://typescript.codeplex.com/discussions/451454

6

Questa caratteristica è stato recentemente aggiunto al master ramo dattiloscritto via this pull request. Dichiarazione di un nome del modulo AMD è con il seguente commento di riferimento:

/// <amd-module name='MyModuleName'/>

produrrà il seguente JavaScript:

define("MyModuleName", ["require", "exports"], function (require, exports) { ... }