मेरे पास एक नोडज/टाइपस्क्रिप्ट 2 प्रोजेक्ट है और es6-promise पैकेज का उपयोग करें। अब मैं अतिरिक्त पैकेज से छुटकारा पाना चाहता हूं क्योंकि मैं सीधे टाइपस्क्रिप्ट में ES6 को लक्षित कर सकता हूं।ईएस 6 वादा/टाइपस्क्रिप्ट और ब्लूबर्ड वादा
इसलिए मैंने es6- वादा पैकेज को हटा दिया और tsconfig.json को es6 को लक्षित करने के लिए बदल दिया।
{
"compilerOptions": {
"target": "es6",
// ...
}
}
कई 3 पार्टी संकुल Bluebird वादा उपयोग करता है लेकिन वादा परिभाषा असंगत है करने के लिए डिफ़ॉल्ट ES6 वादा के रूप में GitHub
- bluebird 3.0 definifion is not assignable to ES6 Promises
- Provide a way to load Bluebird globally in es6 compilation target.
- Add Symbol.toStringTag to promise instance पर विभिन्न पदों पर कहा गया
एस ओ मुझे निम्नलिखित त्रुटि मिल रही है।
टीएस 2322: 'ब्लूबर्ड' टाइप करें 'वादा' टाइप करने के लिए असाइन करने योग्य नहीं है। संपत्ति '[Symbol.toStringTag]' प्रकार 'ब्लूबर्ड' में गायब है।
एनपीएम @types/bluebird-global पर एक अन्य प्रकार का पैकेज है। ब्लॉग पोस्ट में से एक में उपयोगकर्ता @types/bluebird के बजाय इसका उपयोग करने का सुझाव देता है लेकिन कुछ तृतीय पक्ष पैकेज (उदा। टाइपिंग अनुक्रमित) संदर्भ ब्लूबर्ड और ब्लूबर्ड-ग्लोबल नहीं, इसलिए मुझे ब्लूबर्ड की लापता टाइपिंग के लिए एक और त्रुटि मिलती है।
इसे काम करने के लिए एक अच्छा समाधान क्या है?
क्या आप डालने का प्रयास कर सकते हैं: 'इंटरफ़ेस ब्लूबर्ड {[Symbol.toStringTag]: string}' फ़ाइल 'bluebird-patch.d.ts' में? – Paleo
धन्यवाद लेकिन यह मेरे लिए काम नहीं करता है। – dknaack
अंत में ये पैकेज आपको लौट रहे हैं ब्लूबर्ड वादे करता है ताकि आपको अपनी परियोजना में ब्लूबर्ड पैकेज और परिभाषा फाइलों को शामिल करना चाहिए। ब्लूबर्ड वादे "वादा" का नाम बदलने का प्रयास करें जैसे वे मूल हैं वादा वास्तव में भ्रमित हो सकता है (यहां तक कि 'उनके पास एक ही एपीआई है) प्लस मैं ऐसा करने के लिए वैसे भी नहीं देख रहा हूं। :) – deKajoo