TypeScript 5.0 أذهل الجميع: إضافة ميزة «مخفية» من Python إلى المعيار

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

معيار 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.

المكتبات الموصى بها