2016-04-12 8 views
5

के बिना बुलाया नहीं जा सकता है, मैं लेबल को पारदर्शी बनाने के लिए उपयोग कर रहा हूं।बेबेल त्रुटि: क्लास कन्स्ट्रक्टर फू को 'नया'

मेरे पास class BaseComponent है जो class Logger द्वारा बढ़ाया गया है।

var Logger = function (_BaseComponent) { 
    _inherits(Logger, _BaseComponent); 

    function Logger() { 
    _classCallCheck(this, Logger); 

    return _possibleConstructorReturn(this, Object.getPrototypeOf(Logger).call(this, "n")); //throws here 
    } 
+0

में transform-es2015-classes इस कोलाहल, या कोड का उत्पादन है कि आपके द्वारा लिखी गई है है? (यदि यह आउटपुट है, तो आपके द्वारा लिखे गए कोड को दिखाएं।) – apsillers

+0

'बेसकंपोनेंट' क्या है? – loganfsmyth

+0

@loganfsmyth सिर्फ एक ES6 वर्ग – Nikos

उत्तर

8

कारण:

जब मैं ब्राउज़र में new Logger() चलाने के लिए, मैं इस त्रुटि

कक्षा निर्माता BaseComponent बिना 'नए'

कोड लागू नहीं किया जा सकता है कि फेंकता है हो रही है जिस तरह से ईएस 6 कक्षाएं काम करती हैं, आप एक देशी वर्ग को एक पारदर्शी कक्षा के साथ विस्तारित नहीं कर सकते हैं। यदि आपका प्लेटफार्म देशी वर्गों का समर्थन करता है, तो मेरी सिफारिश प्रीसेट es2015 का उपयोग करने के बजाय, es2015-node5 का उपयोग करें, मान लीजिए कि आप नोड 5 पर हैं। इससे बैबेल कक्षाओं के संकलन को छोड़ने का कारण बन जाएगा ताकि आपका कोड देशी वर्गों और मूल वर्गों का उपयोग कर सके। अन्य देशी वर्गों का विस्तार कर सकते हैं।

+0

ओह है, यह वास्तव में सीमित है, मैं वैसे भी रचना में आगे बढ़ रहा हूं! – Nikos

+0

@loganfsmyth - मुझे समान त्रुटि मिल रही है। मेरे पास एक टाइपस्क्रिप्ट फ़ाइल है और यह एक जावास्क्रिप्ट फ़ाइल (संबंधित टाइपिंग फ़ाइल के साथ) का विस्तार कर रहा है। क्या यह कोई समस्या है क्योंकि टाइपस्क्रिप्ट पारदर्शी जावास्क्रिप्ट फ़ाइल का विस्तार नहीं कर सकता है और यह केवल एक और टाइपस्क्रिप्ट फ़ाइल का विस्तार कर सकता है? – user911

+1

मुझे कॉफीस्क्रिप्ट में टाइपस्क्रिप्ट क्लास का विस्तार करने की कोशिश करने के साथ ही एक ही समस्या थी (जिसे मैं बेबेल द्वारा पारदर्शी कर रहा हूं क्योंकि किसी कारण से नोड * अभी भी * ईएस 6 आयात का समर्थन नहीं करता है)। मेरा समाधान नवीनतम नोड संस्करण को लक्षित करने के लिए 'babel-preset-env' को कॉन्फ़िगर करना था (http://babeljs.io/docs/plugins/preset-env/ देखें), यह केवल' आयात 'कथन और पत्तियों को पार करता है अकेले कक्षाएं – Chris

3

एक अन्य समाधान को बाहर .babelrc

presets: [ 
    ["env", { exclude: ["transform-es2015-classes"] }] 
] 
संबंधित मुद्दे