यदि मैं यह टीएस है मॉड्यूल:टाइपप्रति एएमडी कार्यान्वयन जावास्क्रिप्ट/RequireJS साथ बुरा
export function say(){
console.log("said");
}
और मैं AMD विकल्प के साथ यह संकलन मैं इसे एक ts ग्राहक से काफी आसानी से उपयोग कर सकते हैं:
import foo = module("tsmodule")
foo.say();
export var x = 123;
लेकिन अगर मैं ts मॉड्यूल के लिए जावास्क्रिप्ट बराबर है:
define(["require", "exports"], function(require, exports) {
function say() {
console.log("said");
}
exports.say = say;
})
यह आसानी से उपयोग करने के लिए कोई तरीका नहीं है। सरल संभव समाधान:
// of course you can use .d.ts for requirejs but that is beside the point
declare var require:any;
// will fail with error module has not been loaded yet for context
// http://requirejs.org/docs/errors.html#notloaded
var useme = require("jsmodule")
useme.say();
export var x = 123;
import foo = module("tsmodule")
foo.say();
त्रुटि http://requirejs.org/docs/errors.html#notloaded के कारण विफल रहता। चूंकि जनरेटेड टाइपस्क्रिप्ट में परिभाषित कॉल को "jsmodule" पास नहीं किया गया था।
दो तरीके दिए मैं
- आयात/निर्यात (भाषा सुविधाओं खो)
- उपयोग की आवश्यकता ([]) (अभी भी कुछ है कि आवश्यकता होती है पर निर्भर करता है निर्यात नहीं कर सकते ([का उपयोग नहीं करते ]) कॉल)
की सीमाएं हैं: https://github.com/basarat/typescript-requirejs। क्या कोई और तरीका है? यदि नहीं तो आप यहां मतदान कर सकते हैं: https://typescript.codeplex.com/workitem/948 :)
जाहिरा तौर पर एक गैर-दस्तावेजी सुविधा राज्य हैं प्रदान करते हैं और मेरे tsc संस्करण 0.9.0 अल्फा के साथ काम नहीं करता। मुझे संस्करण 0.8 – basarat
ओ शूट करने के लिए अनइंस्टॉल/इंस्टॉल करने दें, उन्होंने इसे 0.9 में हटा दिया ?! मैं 0.8.1.1 का उपयोग कर रहा हूँ। – thomaux
0.8.3 में काम करता है। लेकिन 0.9.0alpha – basarat