انتصر TypeScript. إليكم ما جنيناه من ذلك.
لم يعد أحد يجادل حول استخدام TypeScript. مشاريع الواجهة الأمامية (frontend) الجديدة تستخدمه بشكل افتراضي. انتهى الجدل. لقد انتصر TypeScript.
الفوز هو الجزء الممل. القيمة الحقيقية تكمن فيما تفعله الأنواع (types) لسير عملك. الأمر يتجاوز مجرد اكتشاف الأخطاء المطبعية.
تعمل توقيعات الدوال (function signature) بمثابة توثيق، وهي لا تصبح قديمة أبداً. إذا تغير الكود، سيفشل المترجم (compiler) عملية البناء فوراً.
انظر إلى دالة تقوم بجدولة تذكير. ستعرف ما تحتاجه وما ترجعه دون قراءة تعليق واحد. سترى الخيارات الدقيقة لقناة الاتصال. إذا أضفت قناة جديدة، سيخبرك المترجم بكل مكان تحتاج فيه إلى تحديث الكود الخاص بك. أما التعليق فسيظل مكانه ليصبح خاطئاً.
تصبح إعادة هيكلة الكود (Refactoring) أمراً آمناً. في الكود غير المحدد الأنواع، يكون تغيير اسم حقل ما أمراً مخيفاً؛ حيث تبحث عن النصوص وتتمنى الأفضل. أما في TypeScript، فأنت تغير النوع فقط، وسيعطيك المترجم قائمة بكل ما تعطل. لم تعد إعادة الهيكلة مخاطرة، بل أصبحت مهمة آمنة.
تساعدك الأنواع أيضاً في استخدام الذكاء الاصطناعي.
عندما تطلب من الذكاء الاصطناعي تعديل كود JavaScript غير محدد الأنواع، فإنه يخمن شكل الكائن (object shape). أما عند استخدام TypeScript، فإن النوع هو المواصفات. يعرف الذكاء الاصطناعي بالضبط ما هو مسموح به. تظهر الأخطاء كأخطاء تجميع (compile errors) بدلاً من انهيارات في بيئة التشغيل (production crashes). تحول الأنواع الكود المُنشأ إلى كود متوافق تماماً.
كان الناس يقولون إن الأنواع تبطئك. ولكن في سير عمل يعتمد على الذكاء الاصطناعي، تسرعك الأنواع. فهي تعمل كحواجز حماية (guardrails). يمكنك قبول الكود المُنشأ بثقة بدلاً من فحص كل سطر يدوياً.
اكتب أنواعاً أفضل باتباع هذه القواعد:
- استخدم الـ unions بدلاً من قيم منطقية (booleans) متعددة. حالة مثل
"loading" | "error" | "ready"أفضل من ثلاثة أعلام (flags) منفصلة. - سمِّ أنواع النطاق (domain types) الخاصة بك. استخدام نوع مثل
Centsبدلاً من مجرد رقم عادي يوضح هدفك. - تجنب استخدام
any. استخدمunknownوقم بتضييق النطاق (narrow it down). كلمةanyتدمر شبكة الأمان الخاصة بك. - اترك الاستنتاج (inference) يعمل. لا تضع توضيحات (annotations) لكل شيء. ضع التوضيحات عند الحدود (boundaries) واترك الباقي يتدفق.
حول TypeScript قواعد الكود (codebases) إلى عقود صريحة. تسمح هذه العقود بإعادة هيكلة الكود دون خوف وبمساعدة موثوقة من الذكاء الاصطناعي.
بدأنا في استخدام الأنواع لإيقاف الأخطاء (bugs). ونستمر في استخدامها لأنها الأساس لكل شيء آخر.
المصدر: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-53lo
مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi
