0Pricing
TypeScript Academy · درس

تضييق الأنواع المتقدم

تعلّم كيفية استخدام حواجز الأنواع المتقدمة وتحليل تدفق التحكم للتعامل بسهولة مع شروط الأنواع المعقدة

تضييق الأنواع المتقدم درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 3 دروس في المجموع.

مقدمة إلى تضييق الأنواع المتقدم

مقدمة إلى تضييق الأنواع المتقدم

يتيح تضييق الأنواع المتقدم تنقيح الأنواع المعقدة أثناء التشغيل باستخدام أساليب متقدمة مثل حراس الأنواع، وتحليل تدفق التحكم، والمسندات المخصصة.

تجعل هذه الأدوات تعليمات TypeScript البرمجية أكثر أمانًا وقابلية للتنبؤ.

تضييق الأنواع المتقدم — رسم توضيحي 1

ما تضييق الأنواع؟

ما تضييق الأنواع؟

تضييق الأنواع هو عملية تنقيح نوع أوسع، مثل string | number، وتحويله إلى نوع أكثر تحديدًا باستخدام عمليات تحقق أثناء التشغيل.

استخدام typeof لتضييق الأنواع

استخدام typeof لتضييق الأنواع

يمكن استخدام المعامل typeof لتضييق الأنواع البدائية:

function printValue(value: string | number): void {
  if (typeof value === 'string') {
    console.log(`String: ${value}`);
  } else {
    console.log(`Number: ${value}`);
  }
}

printValue('Hello'); // String: Hello
printValue(42); // Number: 42

استخدام instanceof لتضييق الأنواع

استخدام instanceof لتضييق الأنواع

يمكن استخدام المعامل instanceof لتضييق أنواع مثيلات الأصناف:

class Dog {
  bark() {
    console.log('Woof!');
  }
}

class Cat {
  meow() {
    console.log('Meow!');
  }
}

function makeSound(animal: Dog | Cat): void {
  if (animal instanceof Dog) {
    animal.bark();
  } else {
    animal.meow();
  }
}

makeSound(new Dog()); // Woof!
makeSound(new Cat()); // Meow!

استخدام حراس الأنواع المخصصة

استخدام حراس الأنواع المخصصة

يمكنك إنشاء دوال مخصصة لحراسة الأنواع لتضييق الأنواع بدقة أكبر:

type Fish = { swim: () => void };
type Bird = { fly: () => void };

declare const animal: Fish | Bird;

function isFish(animal: Fish | Bird): animal is Fish {
  return (animal as Fish).swim !== undefined;
}

if (isFish(animal)) {
  animal.swim();
} else {
  animal.fly();

تحليل تدفق التحكم

تحليل تدفق التحكم

يضيّق تحليل تدفق التحكم في TypeScript الأنواع تلقائيًا بناءً على التدفق المنطقي لتعليماتك البرمجية:

function getLength(value: string | string[]): number {
  if (Array.isArray(value)) {
    return value.length;
  } else {
    return value.length;
  }
}

console.log(getLength('Hello')); // 5
console.log(getLength(['a', 'b', 'c'])); // 3

فوائد تضييق الأنواع المتقدم

فوائد تضييق الأنواع المتقدم

يحسّن تضييق الأنواع المتقدم تعليماتك البرمجية من خلال:

  • تقليل أخطاء وقت التشغيل.
  • جعل التعليمات البرمجية أكثر أمانًا وأسهل فهمًا.
  • توفير تحكم دقيق في التعامل مع الأنواع.

مهمة تدريبية

مهمة تدريبية

أنشئ دالة تتلقى معلمة من النوع string | number وتسجّل رسالة مختلفة لكل نوع. استخدم typeof لتنفيذ المنطق.

تهانينا!

تهانينا!

لقد تعلّمت كيفية استخدام أساليب تضييق الأنواع المتقدم في TypeScript لتنقيح الأنواع المعقدة والتعامل معها بأمان وفعالية. مارس هذه الأساليب لجعل تعليماتك البرمجية أكثر متانة وأمانًا من ناحية الأنواع!

تضييق الأنواع المتقدم — رسم توضيحي 10

الأسئلة الشائعة

هل درس «تضييق الأنواع المتقدم» مجاني؟

نعم — نص درس «تضييق الأنواع المتقدم» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 3 دروس في المجموع.

ماذا ستتعلم في «تضييق الأنواع المتقدم»؟

تعلّم كيفية استخدام حواجز الأنواع المتقدمة وتحليل تدفق التحكم للتعامل بسهولة مع شروط الأنواع المعقدة تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟

لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.

كم من الوقت يستغرق درس «تضييق الأنواع المتقدم»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟

نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تضييق الأنواع المتقدم
  2. ميزات الفئات المتقدمة
  3. الأنواع الشرطية
← العودة إلى TypeScript Academy