2012-10-03 17 views
8

W AMD (wprowadzone w requirejs) można określone moduły są zawarte w zależności, npTypescript kompilacji modułów AMD z wymaganymi określa

define(['require','exports'], function(require, exports) { 
    var externalDep = require('path/to/depModule'); 

    // Use the module somewhere. 
}); 

Próbowałem --module AMD i wyprowadza prawidłowo Moduł AMD do użytku przez requirejs.

Czy można zdefiniować zależności w źródle pliku źródłowego TypeScript, które ma postać podobną do powyższego przykładu?

Odpowiedz

13

Musisz "eksportować" swoje moduły;

export module depModule { 
    export class A { 
    } 
} 

która transalate do kodu JavaScript, który wygląda następująco:

define(["require", "exports"], function(require, exports) { 
    (function (depModule) { 
     var A = (function() { 
      function A() { } 
      return A; 
     })(); 
     depModule.A = A; 
    })(exports.depModule || (exports.depModule = {})); 
}) 

a następnie spożywać je za pomocą "import":

module otherModule { 
    import depModule = module('depModule'); 
    var a = new depModule.depModule.A(); 
} 

trzeba będzie określić typ generowanie kodu modułu do kompilatora za pomocą --module AMD.

+0

Dobra odpowiedź, czy możesz wyjaśnić, jak skonfigurować Visual Studio przy użyciu tego parametru kompilatora? – Eric

+7

@Eric - Proponuję zainstalować rozszerzenie "Web Essentials 2012" Mads Kristensen. Na stronie opcji rozszerzenia możesz określić, że pliki TypeScript powinny być kompilowane z opcją AMD. Możesz pobrać/znaleźć tutaj: http://visualstudiogallery.msdn.microsoft.com/07d54d12-7133-4e15-becb-6f451ea3bea6 –

+0

Należy zauważyć, że począwszy od wersji 3.0, cała obsługa TypeScript została usunięta z Web Essentials, zobacz [dziennik zmian] (http://vswebessentials.com/changelog). Ta funtionalność powinna być ostatecznie dostępna w Visual Studio. – Chris

Powiązane problemy