2016-08-07 8 views
17

जब मैं अपने एक्सप्रेस सर्वर पर इस लाइन का उपयोग करें, यह टाइपप्रति 1.x में अच्छी तरह से काम करता है नहीं किया जा सकताबाएं हाथ की ओर एक निरंतर या केवल पढ़ने के लिए संपत्ति

mongoose.Promise = global.Promise; 

(mongoose.Promise = global.Promise; के उपयोग the mongoose document से है)

टाइपस्क्रिप्ट 2.x को अपडेट करने के बाद, यह टर्मिनल में यह त्रुटि दिखाता है, और मुझे सर्वर शुरू करने नहीं देगा।

असाइनमेंट अभिव्यक्ति का बायां हाथ एक स्थिर या केवल पढ़ने योग्य संपत्ति नहीं हो सकता है।

मैं इसे कैसे हल कर सकता हूं? धन्यवाद

उत्तर

31

इसका कारण यह है es6 में सभी मॉड्यूल के चर स्थिरांक माना जाता है।

https://github.com/Microsoft/TypeScript/issues/6751#issuecomment-177114001

TypeScript 2.0 बग में (इस त्रुटि रिपोर्टिंग नहीं की) तय हुई थी। var mongoose = require("mongoose") - -

mongoose के बाद से अभी भी commonjs उपयोग कर रहा है नहीं es6 आयात वाक्य रचना (जो typings में प्रयोग किया जाता है), तो आप यह सोचते हैं मॉड्यूल प्रकार any की है द्वारा त्रुटि को दबाने कर सकते हैं।

वैकल्पिक हल:

(mongoose as any).Promise = global.Promise; 
+4

धन्यवाद! बस एक और समान तरीका जोड़ा: '( mongoose)। समझौता = वैश्विक। समझौता;' –

संबंधित मुद्दे

 संबंधित मुद्दे