`${T}` أنواع القوالب النصية

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

`${T}` أنواع القوالب النصية

تجري أنواع القوالب النصية سَلسَلة السلاسل على مستوى الأنواع: فالتعبير `${A}-${B}` يعدّد كل تركيبات حوادث A و B. وهو مناسب لاصطلاحات السلاسل "بادئة + لاحقة" مثل أسماء الأحداث والمسارات وأسماء فئات CSS.

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

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

📝 الصيغة

type Lang = "zh" | "en";
type Page = "home" | "about";
type Route = `/${Lang}/${Page}`; // اتحاد من 4 تركيبات

⚙️ المعاملات

`${T}`توضع اتحادات الأنواع الحرفية داخل العناصر البديلة ${}؛ وتتوسع أعضاء الاتحاد إلى حاصل ديكارتي
Uppercase/Lowercaseأنواع أدوات تحويل المحارف المدمجة، وهي تشترك مع القوالب النصية في الآلية نفسها

القيمة المُعادة:اتحاد مكون من كل التركيبات النصية — منتج خاص بزمن الترجمة وحده ولا وجود له في وقت التشغيل.

▶ مثال

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

الناتج:

user:created | order:deleted

(مخرجات التشغيل بعد التحويل؛ وضع "user:updated" في المصفوفة يؤدي إلى خطأ ترجمة — فهو ليس من ضمن التركيبات الأربع)

💡 نقاط مهمة

ℹ️ معلومة يجب أن تكون العناصر البديلة أنواعًا حرفية (يصح string | number أيضًا، لكن توسع الاتحاد لا يحدث إلا على الاتحادات الحرفية)؛ وعدد التركيبات هو حاصل ضرب أحجام الاتحادات.
💡 تلميح بالمزج مع infer في الأنواع الشرطية يمكن "استخراج" مقاطع من النوع النصي: type OnEvent<T> = T extends `on${infer E}` ? E : never.
⚠️ تنبيه كثرة أعضاء الاتحاد تُفجّر عدد التركيبات (10×10 تعني 100 فرع) وتُبطئ الترجمة؛ فحدِّد حجم الاتحادات أو استبدل بها string.
المزيد من الحالات قادم قريبًا.

📚 دروس ذات صلة

❓ أسئلة شائعة

س هل توجد أنواع القوالب النصية في وقت التشغيل؟
ج لا توجد. فهي عملية أنواع في زمن الترجمة فقط تختفي بعد التحويل؛ ولا يبقى في وقت التشغيل إلا قيم السلاسل النصية العادية.
س كيف أستخرج جزءًا من نوع سلسلة نصية؟
ج بأنواع شرطية مع infer: type Event<T> = T extends `on${infer Name}` ? Name : never يحوّل onCreated إلى created. راجع مدخل infer-keyword.
س هل الأنواع المدمجة مثل Uppercase<T> من أنواع القوالب النصية؟
ج نعم، فأنواع Uppercase/Lowercase/Capitalize/Uncapitalize تحوّل المحارف بالآلية نفسها ويمكن تركيبها بحرية مع أنواع القوالب النصية المخصصة.
Web-Tutorial.com

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

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

100%