Nasıl typescript AMD Modülleri bağımlı modül tanımlayabilirsiniz

oy
6

Nasıl örneği, jQuery için de dahil olmak üzere typescript ile AMD Modülünde bağımlı modülleri tanımlayıp altını çizebilir. JavaScript kullanarak yapmam, örneğin, böyle:

define('moduleA',
    ['jquery', 'underscore'], function ($, _) {
    }
});

O typescript derleyici bu kodu üretir, böylece bunu nasıl.

Oluştur 08/10/2012 saat 14:44
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
3

derleyici (0.8) ne arıyorlar ulaşmak için yol geçerli uygulama ile aşağıdaki şekildedir.

test.ts:

import jquery = module("jquery");
import underscore = module("underscore");

export module A {
    console.log(jquery.$ + underscore._);
}

jquery.ts:

export var $ = null;

underscore.ts:

export var _ = null;

Eğer modül anahtarını kullanarak test.ts derlemek eğer:

tsc --module AMD test.ts

sizin için aşağıdaki JS dosyası oluşturur:

define(["require", "exports", "jquery", "underscore"], function(require, exports, __jquery__, __underscore__) {
    var jquery = __jquery__;
    var underscore = __underscore__;
    (function (A) {
        console.log(jquery.$ + underscore._);
    })(exports.A || (exports.A = {}));
})

Eğer modül içerisindeki ithalat ifadeleri koyarsanız o nedeni teknik bir hata doğru codegen dikkat unutmayın. Takım şu anda bu öğe üzerinde bir düzeltme üzerinde çalışıyor ama umarım sizi engellememelidir.

Cevap 08/10/2012 saat 17:22
kaynak kullanıcı

oy
2

Bu, şu anda (bkz nedeniyle derleyicisi hata için daktilo versiyonunda düzgün çalışmaz StackOverflow'daki ). Ne yapmak gerekir bir modülü tanımlamak olduğu moduleAithalat jqueryve underscoreve sonra o derleme -module amd. Temel olarak, aşağıdaki üç dosya gerekir:

moduleA.ts

export module moduleA {
    import jquery = module("jquery");
    import underscore = module("underscore");
    console.log(jquery.jquery);
    console.log(underscore.underscore);
}

jquery.ts

export module jquery {
    var jquery = "jquery";
}

underscore.ts

export module underscore {
    var underscore = "underscore";
}

Olanlar üç dosyayı Derleme tsc -module amdverim için aşağıdaki kod moduleA.js:

define(["require", "exports"], function(require, exports) {
    (function (moduleA) {
        var jquery = __jquery__;

        var underscore = __underscore__;

        console.log(jquery.jquery);
        console.log(underscore.underscore);
    })(exports.moduleA || (exports.moduleA = {}));

})

Sanki derleyicisi hata nedeniyle, bu kod aslında yanlış ve eksik şikayetçi olur dolayı, yukarıda bahsedilen __jquery__çalışma zamanında. Bu Hata düzeltildikten sonra ancak amdbir yükleyici node.jsmodüllerini yüklemek gerekir.

Cevap 08/10/2012 saat 15:05
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more