انتصر TypeScript. إليكم ما جنيناه من ذلك.
انتهى الجدل. معظم مشاريع الواجهة الأمامية (frontend) الجديدة تستخدم TypeScript بشكل افتراضي. لم يعد الناس يتجادلون حول ما إذا كان ينبغي اعتمادها أم لا.
القيمة الحقيقية لا تكمن فقط في اكتشاف الأخطاء المطبعية، بل هي أعمق بكثير من الفكرة الأساسية التي رُوّج لها في البداية.
توفر الأنواع (Types) توثيقاً لا يتقادم أبداً. تخبرك توقيعات الدوال (function signature) بالضبط بما يحتاجه جزء من الكود وما يعيده. إذا أضاف مطور خياراً جديداً إلى نوع اتحاد (union type)، فإن المترجم (compiler) يجبرك على تحديث كل جزء من الكود الخاص بك. التعليقات (Comments) تبلى، أما الأنواع فلا.
تتحول عملية إعادة هيكلة الكود (Refactoring) من مهمة مخيفة إلى مهمة آمنة. في الكود غير المحدد الأنواع، يشبه تغيير اسم حقل ما المقامرة. أما في TypeScript، فبمجرد تغيير النوع، يمنحك المترجم قائمة بكل سطر تعطل. هذا يزيل الخوف من المساس بالكود القديم.
كما تعمل الأنواع على تحسين عملك مع الذكاء الاصطناعي.
عندما تطلب من الذكاء الاصطناعي تعديل كود JavaScript غير محدد الأنواع، فإنه يخمن الهيكل، مما يؤدي إلى أخطاء قد تظهر في بيئة الإنتاج (production). أما في TypeScript، فيعمل النوع كمواصفات (specification)؛ حيث يعرف الذكاء الاصطناعي القواعد. وإذا ارتكب الذكاء الاصطناعي خطأً، فإن المترجم يكتشفه فوراً. تحول الأنواع "الكود المحتمل" إلى "كود مثبت".
الأنواع لا تبطئك، بل في سير عمل الذكاء الاصطناعي، هي تسرعك. فهي تعمل كحواجز حماية (guardrails) تتيح لك الوثوق بالكود المُنشأ دون الحاجة إلى فحص كل سطر يدوياً.
اكتب أنواعك بقصد (intent):
• استخدم أنواع الاتحاد (unions) بدلاً من المتغيرات المنطقية (booleans) المتعددة. حالة مثل "loading" | "error" | "ready" تمنع الحالات المستحيلة.
• قم بتسمية أنواع النطاق (domain types) الخاصة بك. استخدام "type Cents = number" يجعل قصدك واضحاً.
• تجنب استخدام "any". استخدم "unknown" وقم بتضييق أنواعك (narrowing) بدلاً من ذلك. إن "any" يدمر شبكة الأمان الخاصة بك.
• اترك عملية الاستنتاج (inference) تعمل. لست بحاجة لتحديد كل شيء. حدد توقيعات الدوال وواجهات برمجة التطبيقات (APIs) المصدرة، ثم اترك الباقي يتدفق.
حول TypeScript قواعد الكود (codebases) إلى مجموعات من العقود المفروضة. تمكن هذه العقود من إعادة هيكلة الكود دون خوف ومن الحصول على مساعدة موثوقة من الذكاء الاصطناعي.
بدأنا في استخدام الأنواع لإيقاف الأخطاء (bugs). ونستمر في استخدامها لأنها الأساس لكل شيء آخر.
المصدر: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-12m8
