Avatar ·

كيفية كتابة نوع دالة الاستدعاء (callback) بشكل صحيح في معاملات طريقة TypeScript؟

مرحباً بالجميع! بدأت تعلم TypeScript وواجهت مشكلة في كتابة أنواع دوال الاستدعاء (callbacks). لدي طريقة تستقبل دالة استدعاء، وأريد تحديد نوعها بدقة، لكنني لا أعرف كيف أفعل ذلك بشكل صحيح. إليك مثال. لدي كلاس `DataProcessor` يعالج البيانات ويستدعي دالة الاستدعاء بعد الانتهاء: ```typescript class DataProcessor { process(data: number[], callback: ???) { const result = data.map(x => x * 2); callback(result); } } ``` المشكلة أنني لا أعرف ماذا أكتب بدلاً من `???`. إذا كتبت `callback: any`، فإن TypeScript يتوقف عن التحقق من الأنواع وأفقد كل مزايا الكتابة الثابتة. إذا كتبت `callback: Function`، فلن أحصل على الإكمال التلقائي والتحقق من الوسائط. أريد أن تكون دالة الاستدعاء أي دالة، لكن مع التحقق من TypeScript أنها تستقبل العدد الصحيح من الوسائط وتعيد شيئاً (أو لا شيء). كيف يمكنني تعريف النوع بشكل صحيح لدالة الاستدعاء هذه؟ هل أحتاج إلى وصف الـ