"a" | "b" الأنواع الحرفية

آخر تحديث: 2026-10-22

"a" | "b" الأنواع الحرفية

ترفع الأنواع الحرفية "القيمة نفسها" إلى نوع: فـ "up" و 1 و true كلها أنواع. استخدامها منفردة محدود الفائدة، لكنها بعد دمجها في اتحادات تحدد نطاق القيم المسموحة تحديدًا دقيقًا.

المجموعةتركيب الأنواع
النوعنوع
الوضع الصارمغير مطلوب

ℹ️ معلومة يحوّل المحرر لغة TypeScript إلى JavaScript ثم يشغّلها (بدون فحص أنواع)؛ راجع ناتج كل مثال لنتيجة فحص الأنواع.

📝 الصيغة

type Size = "small" | "medium" | "large";
let size: Size = "medium";

const mode = "dark"; // const يُستنتج كنوع حرفي "dark"
let level = 3;       // let يُستنتج كـ number موسّع

⚙️ المعاملات

"a" | 42 | trueثلاثة أنواع الحرفيات الأصلية جميعها تصبح أنواعًا: "a" و 42 و true
as constيُقفل خصائص الكائنات/المصفوفات إلى أنواع حرفية، وهو مفيد لثوابت الإعدادات

القيمة المُعادة:لا قيمة مُعادة — الأنواع الحرفية مفهوم خاص بطبقة الأنواع فقط وتختفي بعد الترجمة.

▶ مثال

عدّل الكود أدناه واضغط «جرّب» لرؤية نتيجة التحويل:

الناتج:

up x2 right x1

(مخرجات التشغيل بعد التحويل؛ الاستدعاء move("Up", 1) يؤدي إلى خطأ ترجمة — فالحرفيات يجب أن تطابق تمامًا وبحساسية الأحرف)

💡 نقاط مهمة

ℹ️ معلومة يستنتج let النوع الواسع (string)، بينما يستنتج const النوع الحرفي ("dark") — وهذا أكثر مصادر الأنواع الحرفية شيوعًا.
💡 تلميح أضف as const إلى كائنات ثوابت الإعدادات فتُقفل كل خصائصها إلى أنواع حرفية، فتصبح جاهزة لتغذية معاملات الدوال الاتحادية الحرفية مباشرةً.
⚠️ تنبيه مطابقة الحرفيات مقارنة دقيقة حساسة لحالة الأحرف: فـ "Up" لا يمكن إسنادها إلى "up"، ولا تصلح الفراغات الطرفية كذلك.
المزيد من الحالات قادم قريبًا.

📚 دروس ذات صلة

❓ أسئلة شائعة

س لماذا يحصل const على نوع حرفي بينما يحصل let على string؟
ج لأن متغير const لن يتغير أبدًا فتستخدم TS أدق "نوع القيمة"؛ بينما قد يُسند let إليه سلاسل أخرى لاحقًا فيتوسع إلى string. وعند الحاجة إلى نوع ضيّق استخدم تعليقًا صريحًا أو as const.
س ما وظيفة as const؟
ج تأكيد على أعمق صورة للقراءة فقط: تصبح كل الخصائص أنواعًا حرفية غير قابلة للكتابة. فالتعبير { method: "GET" } يُستنتج { method: string }، وبإضافة as const يصبح method حرفيًا "GET".
س كيف نختار بين الاتحاد الحرفي والتعداد؟
ج الاتحاد الحرفي بلا كلفة في وقت التشغيل ويتكامل بسلاسة مع السلاسل النصية العادية؛ أما التعداد فيوفر مساحة أسماء وتعيينًا عكسيًا. يكفي الاتحاد الحرفي في معظم سيناريوهات قيم العمل (راجع مدخل enum للتفاصيل).
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%