2012-10-03 29 views
8

एएमडी में (requirejs में लागू के रूप में) एक परिभाषित कर सकते हैं मॉड्यूल निर्भरता के रूप में शामिल किया जाना है, जैसे:टाइपप्रति एएमडी मॉड्यूल संकलन आवश्यक साथ परिभाषित करता है

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

    // Use the module somewhere. 
}); 

मैं --module एएमडी की कोशिश की है और इसे सही ढंग एक आउटपुट एएमडी मॉड्यूल requjs द्वारा प्रयोग योग्य।

क्या टाइपस्क्रिप्ट स्रोत फ़ाइल के स्रोत के अंदर निर्भरता को परिभाषित करना संभव है जो ऊपर दिए गए उदाहरण की तरह कुछ अनुवाद करता है?

उत्तर

13

आपको अपने मॉड्यूल "निर्यात" करने की आवश्यकता है;

export module depModule { 
    export class A { 
    } 
} 

JavaScript कोड है कि लग रहा है में transalate होगा जैसे:

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

और उसके बाद आप उन्हें "आयात" का उपयोग करके की खपत:

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

आप का प्रकार निर्दिष्ट करने की आवश्यकता होगी मॉड्यूल एएमडी का उपयोग कर कंपाइलर के लिए आपका मॉड्यूल कोड पीढ़ी।

+0

अच्छा जवाब, क्या आप इस कंपाइलर पैरामीटर के साथ विजुअल स्टूडियो को कैसे सेट अप कर सकते हैं? – Eric

+7

@Eric - मेरा सुझाव है कि आप मैड्स क्रिस्टेनसेन के 'वेब अनिवार्यता 2012' एक्सटेंशन को इंस्टॉल करें। एक्सटेंशन के विकल्प पृष्ठ में आप निर्दिष्ट कर सकते हैं कि टाइपस्क्रिप्ट फ़ाइलों को एएमडी विकल्प के साथ संकलित किया जाना चाहिए। आप इसे यहां डाउनलोड/ढूंढ सकते हैं: http://visualstudiogallery.msdn.microsoft.com/07d54d12-7133-4e15-becb-6f451ea3bea6 –

+0

यह ध्यान दिया जाना चाहिए कि संस्करण 3.0 के अनुसार, सभी टाइपस्क्रिप्ट समर्थन को वेब अनिवार्यता से हटा दिया गया है, [परिवर्तन लॉग] देखें (http://vswebessentials.com/changelog)। अंततः विजुअल स्टूडियो में यह funtionality उपलब्ध होना चाहिए। – Chris