void كنوع من أنواع الوسائط لدالة عامة في TypeScript
من الممكن تحديد void كمعامل نوع لدالة عامة في TypeScript. ويعمل ذلك بشكل جيد لقيم إرجاع الدوال. ومع ذلك، عندما يكون void نوعًا لمعطى، ليس من الواضح ما القيمة التي يمكن استخدامها له. هل هناك طريقة لتحديد معطى من نوع void؟ إذا لم يكن هناك، فلماذا من الممكن إعلان مثل هذه الدالة؟
الإجابة رقم 1
من مواصفة TypeScript:
ملاحظة: قد نفكر في عدم السماح بالإعلان عن متغيرات من نوع Void لأنها لا تخدم أي غرض مفيد. ومع ذلك، نظرًا لأن Void مسموح به كوسيط نوع لنوع عام أو دالة، فإنه من غير الممكن منع خصائص أو معلمات Void.
الإجابة رقم 2
استخدام مفيد لـ void هو عندما تريد جعل المعامل اختياريًا. يستخدم Angular هذا كثيرًا مع RxJS Subject<T> عند إصدار الأحداث ولا يوجد نوع مفيد للحدث.
توقيع الدالة next في Subject<T> هو:
التالي(value?: T)
يمكنك إنشاء Subject<void> الذي يجعل وسيط value ممنوعاً:
new Subject<void>().next()/حسنًا
new Subject<void>().next(true)/غير مسموح
على عكس النوع غير الفارغ حيث تحصل على
new Subject<boolean>().next(true)لست متأكدًا بالضبط من أي إصدار من TS أصبح هذا ممكنًا.