تبسيط أنواع TypeScript

يعتمد TypeScript على نظام أنواع. وإتقانه هو خطوتك الأولى لكتابة كود أفضل.

الأنواع الأساسية

يستخدم TypeScript أنواعاً مشابهة للأنواع الأولية (primitives) في JavaScript: • string: للنصوص. • number: لجميع الأرقام (الأعداد الصحيحة والعشرية). • boolean: للقيم المنطقية (true أو false).

استنتاج النوع (Type Inference)

لست بحاجة دائماً لكتابة النوع بنفسك؛ فغالباً ما يقوم TypeScript بتخمين النوع بناءً على القيمة التي تقدمها، ويُسمى هذا الاستنتاج.

قاعدة جيدة: • اترك TypeScript يستنتج الأنواع للمتغيرات المحلية. • اكتب أنواعاً صريحة لمعاملات الدوال (parameters) وأنواع القيم المُرجعة (return types).

المصفوفات والـ Tuples

تحتوي المصفوفات (Arrays) على قيم متعددة من نفس النوع. • مثال: let tags: string[] = ["ts", "js"];

الـ Tuples هي مصفوفات ذات طول ثابت وأنواع محددة لكل موضع فيها. • مثال: let user: [string, number] = ["Ramesh", 31];

أنواع الاتحاد (Union Types)

استخدم أنواع الاتحاد عندما يمكن أن تكون القيمة أكثر من نوع واحد. • مثال: let id: string | number = "abc123";

أنواع خاصة

هناك أربعة أنواع غالباً ما تسبب ارتباكاً للمبتدئين:

  1. any يقوم هذا النوع بإيقاف فحص الأنواع، مما يجعل الكود الخاص بك يعمل مثل JavaScript العادي. استخدم هذا النوع كملاذ أخير فقط.

  2. unknown هو النسخة الآمنة من any. يشير إلى أن القيمة قد تكون أي شيء، ولكن يجب عليك التحقق من النوع قبل استخدامه.

  3. void استخدمه للدوال التي لا تُرجع أي قيمة.

  4. never استخدمه للدوال التي لا تنتهي أبداً، مثل تلك التي تطلق أخطاء أو تدخل في حلقات تكرار لا نهائية.

ملخص لسير عملك: • استخدم الأنواع الأولية (primitives) لمعظم البيانات. • استخدم الاستنتاج (inference) للحفاظ على نظافة الكود. • استخدم أنواع الاتحاد (union types) للمدخلات المرنة. • تجنب any. • استخدم unknown بدلاً من any عندما لا تكون متأكداً.

المصدر: https://dev.to/ramesh_s_a8f0867d239e927c/typescript-types-demystified-simple-types-special-types-and-type-inference-5bf0