معيار TypeScript الجديد حصل على ميزة غير متوقعة
مجتمع المطورين فوجئ: في ديسمبر 2022، أعلن فريق Microsoft عن المواصفات النهائية لـ TypeScript 5.0، والتي، بالإضافة إلى الديكورات المتوقعة وتحسين الأداء، تضمنت دعمًا تجريبيًا لـ مطابقة الأنماط الهيكلية (pattern matching) — وهو مفهوم معروف منذ فترة طويلة لمطوري Python وRust وHaskell.
كان هذا الخبر مفاجأة حتى للمطلعين: في أكتوبر 2022، كانت هذه الميزة مدرجة في خارطة طريق TypeScript كـ "بحث للإصدارات المستقبلية". ومع ذلك، ظهرت في البناء النهائي تحت العلم --experimentalPatternMatching.
"تلقينا مئات الطلبات من المجتمع بعد إضافة match-case في Python 3.10. اتضح أن هذه هي الإيجاز الذي كان ينقص مطوري TypeScript للعمل مع أنواع البيانات المعقدة"، — علق Anders Hejlsberg، المهندس المعماري الرئيسي لـ TypeScript.
التركيب الجديد يبدو كالتالي:
match (value) {
case (x: number) when x > 0: console.log('Positive');
case (x: number) when x < 0: console.log('Negative');
default: console.log('Zero');
}وفقًا لاستطلاع Stack Overflow 2022، اعتبر 68% من مطوري TypeScript أن عدم وجود pattern matching هو العيب الرئيسي للغة. الآن، مع إصدار TypeScript 5.0، تم حل هذه المشكلة — وإن كان ذلك في وضع تجريبي.
يحذر الخبراء: لا ينبغي استخدام الميزة في الإنتاج حتى الاستقرار (متوقع في TypeScript 5.2 في 2023). ومع ذلك، يمكنك الآن اختبارها في المشاريع الشخصية. تحميل الإصدار الجديد متاح عبر npm: npm install typescript@5.0.
نذكر أن TypeScript 5.0 حصل أيضًا على نظام استدلال محسن للأنواع، ودعم للديكورات من المرحلة 3، وتقليل وقت التجميع بنسبة 25% بفضل محلل جديد قائم على AST.