আমি সর্বশেষতম সংকলক সংস্করণটি ব্যবহার করতে কিছু পুরানো টাইপস্ক্রিপ্ট কোড আপগ্রেড করার কাজ করছি, এবং কল করতে আমার সমস্যা হচ্ছে setTimeout। কোডটি ব্রাউজারের ফাংশনটিতে কল করার প্রত্যাশা setTimeoutকরে যা একটি নম্বর দেয়:
setTimeout(handler: (...args: any[]) => void, timeout: number): number;
যাইহোক, সংকলকটি নোড প্রয়োগের পরিবর্তে এর সমাধান করছে, যা কোনও নোডজেএস.আবারকে রিটার্ন দেয়:
setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
এই কোডটি নোডে চলবে না, তবে নোডের টাইপগুলি অন্য কোনও কিছুর উপর নির্ভরশীলতা হিসাবে টানা হচ্ছে (কী তা নিশ্চিত নয়)।
আমার setTimeoutযে সংস্করণটি চান সেটি বেছে নিতে আমি কীভাবে সংকলককে নির্দেশ দিতে পারি?
এখানে প্রশ্নে কোডটি রয়েছে:
let n: number;
n = setTimeout(function () { /* snip */ }, 500);
এটি সংকলক ত্রুটি উত্পাদন করে:
TS2322: টাইম 'টাইমার' টাইপ 'নম্বর' টাইপ করার যোগ্য নয়।