मैं कैसे टाइपप्रति एएमडी मॉड्यूल में निर्भर मॉड्यूल परिभाषित कर सकते हैं

वोट
6

मैं कैसे उदाहरण के लिए, jQuery के लिए टाइपप्रति के साथ एक एएमडी मॉड्यूल में निर्भर मॉड्यूल परिभाषित कर सकते हैं, सहित, और अंडरस्कोर। जावास्क्रिप्ट का उपयोग करते हुए मुझे क्या करना, उदाहरण के लिए, इस तरह:

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

ताकि टाइपप्रति संकलक इस कोड उत्पन्न करता है यह कैसे कर सकते।

08/10/2012 को 14:44
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
3

संकलक (0.8) जिस तरह से प्राप्त करने के लिए आप क्या मांग कर रहे हैं की वर्तमान कार्यान्वयन के साथ इस प्रकार है।

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;

आप मॉड्यूल स्विच का उपयोग test.ts संकलन करता है, तो:

tsc --module AMD test.ts

यह आप के लिए निम्नलिखित जे एस फ़ाइल उत्पन्न करेगा:

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 = {}));
})

ध्यान दें कि यदि आप मॉड्यूल के अंदर आयात बयान कर दिया है कि यह एक बग के कारण सही ढंग से codegen नोट करती है। टीम वर्तमान में है कि आइटम पर एक ठीक काम कर रहा है, लेकिन उम्मीद है कि आप ब्लॉक नहीं करना चाहिए।

08/10/2012 को 17:22
का स्रोत उपयोगकर्ता

वोट
2

यह वर्तमान में संकलक में बग के कारण टाइपप्रति में सही ढंग से काम नहीं करता है (देखें stackoverflow )। आपको क्या करने की आवश्यकता होगी एक मॉड्यूल को परिभाषित है moduleAकि आयात jqueryऔर underscore, और फिर संकलन उस के साथ -module amd। मूल रूप से, आप निम्न तीन फ़ाइलों की आवश्यकता होगी:

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";
}

साथ उन तीन फ़ाइलें संकलन tsc -module amdकी पैदावार के लिए निम्न कोड 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 = {}));

})

जैसे कि मैंने ऊपर कहा, कारण संकलक में एक बग के लिए, इस कोड को वास्तव में गलत है और लापता के बारे में शिकायत करेंगे __jquery__रनटाइम पर। हालांकि, एक बार इस बग तय हो गई है amdकी लोडर node.jsमॉड्यूल लोड करने के लिए सक्षम होना चाहिए।

08/10/2012 को 15:05
का स्रोत उपयोगकर्ता

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