void النوع void
آخر تحديث: 2026-10-22
void النوع void
يعني void أن "الدالة لا تملك قيمة مُعادة ذات معنى". يُستخدم عادةً لتعليق دوال السجل ووحدات معالجة الأحداث، ليقول للمستدعي "لا تتوقع قيمة مُعادة".
| المجموعة | الأنواع الأساسية |
|---|---|
| النوع | نوع |
| الوضع الصارم | غير مطلوب |
ℹ️ معلومة يحوّل المحرر لغة TypeScript إلى JavaScript ثم يشغّلها (بدون فحص أنواع)؛ راجع ناتج كل مثال لنتيجة فحص الأنواع.
📝 الصيغة
function log(msg: string): void {
console.log(msg);
}
type Handler = (event: string) => void;
⚙️ المعاملات
| () => void | كتابة void في موضع الإرجاع لنوع الاستدعاءات: يجوز للتنفيذ أن يُعيد قيمة، لكن المستدعي يتجاهلها |
|---|
القيمة المُعادة:النوع void هو نفسه "نوع الإرجاع": الدوال المعلَّقة به لا تملك قيمة مُعادة ذات معنى؛ وفي وضع strict فإن استخدام قيمتها المُعادة يعطي النوع void.
▶ مثال
عدّل الكود أدناه واضغط «جرّب» لرؤية نتيجة التحويل:
الناتج:
[event] click
[warn] low battery
(مخرجات التشغيل بعد التحويل؛ كتابة return 5 داخل logEvent تؤدي إلى خطأ ترجمة)
💡 نقاط مهمة
ℹ️ معلومة تسمح دوال void بالأمر return; (إرجاع مجرد) وبـ return undefined، لكنها لا تسمح بإعادة قيم أخرى.
💡 تلميح كتابة نوع الاستدعاءات الحدثية بصيغة (e: Event) => void هي الممارسة المعيارية: فحرية التنفيذ فيما يعيده لا تمسّ العقد.
⚠️ تنبيه النوع void يختلف عن undefined: فـ undefined نوع قيمة حقيقية قائمة، بينما void إعلان عن نية "عدم استخدام القيمة المُعادة"، ولا يجوز الخلط بينهما.
🏷️ الأنواع الأساسية ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قادم قريبًا.
📚 دروس ذات صلة
❓ أسئلة شائعة
س ما الفرق بين void و undefined كنوع إرجاع؟
ج النوع () => undefined يُلزم الدالة بإعادة undefined صراحةً؛ بينما () => void يعني فقط "لا توجد قيمة مُعادة قابلة للاستخدام" وهو أوسع للتنفيذ. الاستدعاءات اليومية تستخدم void عادةً.
س هل يمكن إسناد القيمة المُعادة من دالة void إلى متغير؟
ج نحويًا نعم (يصبح نوع المتغير void)، لكن ذلك بلا معنى — فهي undefined في الحقيقة. تجنّب ذلك في وضع strict.
س ماذا يعني Promise<void>؟
ج يعني أن الوعد يتحقق دون أن يحمل بيانات؛ فالعملية غير المتزامنة تكتفي بالإشارة إلى اكتمالها (كحفظ ناجح مثلًا). أما واجهات قراءة البيانات فينبغي أن تكون Promise<T>.