मैं नवीनतम संकलक संस्करण का उपयोग करने के लिए कुछ पुराने टाइपस्क्रिप्ट कोड को अपग्रेड करने पर काम कर रहा हूं, और मुझे कॉल करने में परेशानी हो रही है setTimeout
। कोड को ब्राउज़र के setTimeout
फ़ंक्शन को कॉल करने की उम्मीद है जो एक नंबर लौटाता है:
setTimeout(handler: (...args: any[]) => void, timeout: number): number;
हालाँकि, कंपाइलर इसके बजाय नोड कार्यान्वयन के लिए हल कर रहा है, जो एक NodeJS.Timer देता है:
setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
यह कोड नोड में नहीं चलता है, लेकिन नोड टाइपिंग को कुछ और पर निर्भरता के रूप में खींचा जा रहा है (निश्चित नहीं कि क्या)।
मैं संकलक को यह निर्देश कैसे दे सकता हूं setTimeout
कि मुझे क्या चाहिए?
यहाँ प्रश्न में कोड है:
let n: number;
n = setTimeout(function () { /* snip */ }, 500);
यह संकलक त्रुटि पैदा करता है:
TS2322: 'टाइमर' टाइप करने के लिए 'टाइमर' टाइप करने योग्य नहीं है।