Avatar ·

الكتابة الصارمة للدوال كمعاملات في TypeScript: كيف تعلن عن نوع لـ callback؟

مرحباً بالجميع! بدأت مؤخراً في تعلم TypeScript وواجهت مشكلة عند تمرير الدوال كوسائط. في JavaScript كنت أفعل ذلك غالباً: ```typescript function processData(data, callback) { const result = data.map(item => item * 2); callback(result); } processData([1, 2, 3], function(result) { console.log(result); }); ``` لكن في TypeScript أحتاج إلى تحديد الأنواع، ولا أفهم كيف أعلن بشكل صحيح عن نوع المعامل الدالة. جربت عدة خيارات لكنها لا تعمل: ```typescript // الخيار 1: مجرد تحديد any function processData(data: number[], callback: any) { ... } // الخيار 2: Function function processData(data: number[], callback: Function) { ... } ``` الخيار الأول يقتل جوهر TypeScript — يتم فقدان التحقق من الأنواع. الثاني أيضاً لا يعطي تحديداً — يمكنني تمرير أي دالة، حتى مع معاملات غير صحيحة. كيف أعلن بشكل صحيح عن نوع لـ callback بحيث يتحقق TypeScript من: 1. عدد المعاملات التي تأخذها