كل من يستخدم نظام JavaScript البيئي هو في الوقت الحاضر على دراية بـ Typescript. يعد Typescript أحد أكثر التقنيات المحبوبة* ويتزايد استخدامه باستمرار (زادت حصة استخدامه من 52% في 2018 إلى 78% في 2020)*.
لم يأتِ الوضع الحالي لـ Typescript من فراغ، حيث أن هذه التقنية قادرة على تحسين تجربة المطورين لدينا حقًا. يزيد الترميز الأكثر وضوحًا من التحكم والقدرة على التنبؤ بـ الكود. في هذه المقالة، سأحاول إقناعك باستخدام Typescript.
عادة، عندما تقوم بتطوير تطبيق في JavaScriptفقد يكون تدفقك تبدو هكذا:
قم بإجراء تغيير,
انتقل إلى التطبيق وتحقق من الجزء الذي تم تغييره / تشغيل الاختبارات (ذات الصلة).
اكتشف ما إذا كان كل شيء على ما يرام.
باستخدام Typescript، يمكنك إجراء التغيير فعليًا وإذا كان هناك أي خطأ في النوع في شفرتك، ستعرف ذلك على الفور بفضل رسالة خطأ المحول البرمجي أو ملاحظات IDE في الوقت الحقيقي. بالطبع، لن يحل مترجم Typescript كل المشاكل ولن يحذّر من جميع الأخطاء، لكن مساعدته قد تكون ذات قيمة لا تقدر بثمن.
إكمال بناء الجملة بشكل أفضل في IDEs
الأمر بسيط جداً. إذا كنت تستخدم IDEs جيدة، مثل WebStorm أو VSCode، ستحصل على إكمال بناء الجملة بشكل أفضل مع Typescript. ربما لا يبدو ذلك تحسينًا كبيرًا لتجربة المطورين، لكن في النهاية كل تحسين مهم لأنه قد يوفر لنا بعض الوقت، ومرة أخرى، يمنعنا من حدوث خطأ مطبعي أو خطأ. أيضًا، يمكننا تحديد نوعنا أو واجهتنا مرة واحدة؛ حيث لا يتعين علينا تذكر البنية دائمًا، ويمكننا التركيز على كتابة منطق العمل.
إعادة بناء أقل إيلاماً
تخيل أنك مضطر إلى إعادة الهيكلة لأي سبب كان، على سبيل المثال، انضممت إلى المشروع وتحصل على مهمة لإضافة ميزة جديدة، ولكن هذه الميزة مرتبطة بطريقة ما برمز قديم. يمكن أن يجعل المحول البرمجي الأمر أسهل وأقل إيلامًا لأنك عندما تجري تغييرًا وهناك مكان آخر يجب أن تجري فيه تغييرًا آخر، سيحذرك المحول البرمجي من ذلك.
على سبيل المثال - يمكن أن يكون توقيع الدالة الذي تم تغييره أو ربما بعد التغيير، ستُعيد الدالة شيئًا مختلفًا تمامًا، لذا سيختلف النوع المُعاد أيضًا.
كن أكثر ثقة بشأن قاعدة الرموز البرمجية
JavaScript مكتوب بشكل ضعيف وديناميكي، لذلك عند تهيئة متغير بالقيمة دع الاستعلام = '' في وقت لاحق في التعليمات البرمجية، قد يقوم المطور بشيء غير منطقي عن طريق الخطأ، على سبيل المثال الاستعلام = صحيحوسيكون كود JS صالحًا.
في الشيفرة المكتوبة بشكل جيد، لا ينبغي أن يحدث تعيين قيمة منطقية إلى متغير كان في السابق سلسلة. لذا، عادةً ما ينتج هذا التعيين مع تغيير النوع عن خطأ.
عند استخدام تايبسكريبت، لا يمكننا تغيير نوع المتغير، لذلك إذا جعلنا دع الاستعلام = '' المتغير، سيكون السلسلة ولن نتمكن من تغيير نوعه بالخطأ.
إذا أردنا أن نجعل متغيرًا ما أكثر من نوع واحد، نقوم بذلك دائمًا بشكل صريح باستخدام نوع الاتحاد، على سبيل المثال سلسلة | رقم.
لذا، فإن Typescript يجعل شفرتنا البرمجية أكثر قابلية للتنبؤ وأكثر وضوحًا. كما أن Typescript سيهتم أيضًا بالوضوح في تحليل تدفق التحكم، وإذا كان هناك احتمال حدوث خطأ ما، فسيحذرك.
هنا في المثال الأول إذا كتلة سنحصل على خطأ:
TS2339: الخاصية 'البطارية' غير موجودة في النوع 'ClothingProduct' 2 مرات، لـ البطاريةو الكبش الخصائص.
في الكتلة الثانية - غير ذلكفسوف نحصل على هذا الخطأ لـ الحجم الملكية. بالطبع، هذا مجرد مثال ليوضح لك كيف أن النقابات التمييزية و تحليل تدفق التحكم العمل في Typescript، لذلك نحن لا نفعل أي شيء معقد للغاية مع هذا الرمز.
ترحيل تدريجي سهل وسهل من JavaScript
شيفرة JavaScript الصالحة هي في نفس الوقت شيفرة Typescript صالحة، لذا يمكنك ترحيل قاعدة شيفرتك خطوة بخطوة. عادةً ما يكون استخدام الوضع الصارم في Typescript ممارسة جيدة، لكن في هذه الحالة علينا أن نبدأ بـ "صارم": خطأ في tsconfig.json ويجب علينا أيضًا تعيين خيارين آخرين.
"allowJs": صحيح، // سيسمح لنا باستخدام ملفات .js ولن يتم التحقق من النوع فيها
"skipLibCheck": صواب // سيتخطى التحقق من الأنواع في المكتبات التي نستخدمها
باستخدام هذه الخيارات، يمكننا الترحيل من JS إلى TS خطوة بخطوة - ملفًا بملف، ببساطة تغيير الامتداد من .js(x) إلى .ts(x) وإضافة أنواع في الملفات. باستخدام هذا النهج، يمكننا تجنب المئات أو الآلاف من أخطاء التجميع المخيفة.
الملخص
أعتقد أنه يجب أن نستخدم نسخة مطبوعة بقدر ما ممكنلأنه مفيد حقًا على المدى الطويل. فهو يساعد في الحفاظ على المشاريع، ويزيد من خبرة المطورين، ويجعل قاعدة التعليمات البرمجية أكثر وضوحاً وموثوقية.
ومع ذلك، وكما هو الحال دائمًا، هناك استثناءات - على سبيل المثال، لصفحة هبوط بسيطة حيث يتم استخدام JavaScript فقط لتبديل الفئة أو حالة أخرى بسيطة، فإن Typescript لا معنى له. علينا أن نتذكر أيضًا أنه للاستفادة الكاملة من Typescript، علينا أن نتعلم استخدامه على مستوى كافٍ، وقد يستغرق ذلك بعض الوقت. أعتقد أنه لا يزال استثمارًا مربحًا جدًا لوقتك.