0Pricing
TypeScript Academy · درس

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

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

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

مرحبًا

يضيّق TypeScript أنواع الاتحاد داخل الكتل الشرطية. وتُعد عمليات التحقق باستخدام `typeof` والتحقق من قيمة الصدق أكثر تقنيات التضييق شيوعًا.

التضييق باستخدام typeof

استخدم `typeof` للتحقق من الأنواع البدائية. يفهم TypeScript عمليات التحقق باستخدام typeof ويضيّق النوع داخل الكتلة.
function process(val: string | number) {
  if (typeof val === 'string') {
    return val.toUpperCase(); // val: string
  }
  return val.toFixed(2); // val: number
}

القيم التي يعيدها typeof

يعيد typeof إحدى القيم 'string' أو 'number' أو 'boolean' أو 'bigint' أو 'symbol' أو 'undefined' أو 'object' أو 'function'. ملاحظة: typeof null === 'object' — وهذه من خصائص JavaScript الغريبة.
typeof 'hello'    // 'string'
typeof 42         // 'number'
typeof true       // 'boolean'
typeof null       // 'object' (quirk!)
typeof undefined  // 'undefined'

التضييق باستخدام قيمة الصدق

تكون قيم JavaScript إما صادقة أو كاذبة. ويضيّق TypeScript النوع `T | null | undefined` إلى `T` داخل عملية تحقق من قيمة الصدق.
function greet(name: string | null) {
  if (name) {
    console.log('Hello, ' + name); // name: string
  } else {
    console.log('Hello, stranger');
  }
}

القيم الكاذبة

القيم الكاذبة في JavaScript هي: false و0 و'' وnull وundefined و0n وNaN. ويزيل تضييق قيمة الصدق هذه القيم من النوع عند نجاح عملية التحقق.

التضييق باستخدام التحويل إلى Boolean

يؤدي استخدام `Boolean(val)` أو `!!val` أيضًا إلى تضييق النوع باستبعاد null وundefined.
const items: (string | null)[] = ['a', null, 'b', null];
const strings = items.filter((x): x is string => x !== null);

الشروط المنفية

يضيّق TypeScript النوع أيضًا في فروع else وبعد عمليات الإرجاع المبكرة.
function getLength(val: string | null): number {
  if (!val) return 0; // early return narrows
  return val.length;  // val: string here
}

دمج typeof مع المساواة

يوفر استخدام المساواة الصارمة (===) مع typeof تضييقًا دقيقًا للنوع.
function accept(x: string | number | boolean) {
  if (typeof x === 'string' || typeof x === 'number') {
    console.log(x); // x: string | number
  }
}

لا يستطيع typeof التضييق إلى null

لتضييق النوع إلى null، استخدم المساواة الصارمة `=== null`. فلا يمكن للتحقق من قيمة الصدق التمييز بين null والقيم الكاذبة الأخرى.
function check(x: string | null | 0) {
  if (x === null) { /* x: null */ }
  else if (x === 0) { /* x: 0 */ }
  else { /* x: string */ }
}

التضييق داخل الحلقات

يطبّق TypeScript التضييق داخل أجسام الحلقات أيضًا، وليس في عبارات if فقط.

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

يتتبع TypeScript النوع عند كل نقطة في شيفرتك باستخدام تحليل تدفق التحكم. كما تحدّث عمليات الإسناد النوع أيضًا.
let x: string | number = 'hello';
// x: string
x = 42;
// x: number

تحقق سريع

داخل `if (typeof val === 'string')`، ما نوع `val` بافتراض أنه كان `string | number`؟

مراجعة

تضيّق عمليات التحقق باستخدام typeof وشروط قيمة الصدق أنواع الاتحاد في TypeScript. ويستخدم TypeScript تحليل تدفق التحكم لتتبع الأنواع عند كل نقطة. استخدم المساواة الصارمة للتحقق من null وundefined.

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

هل درس «تضييق النوع باستخدام typeof وقيم الصواب» مجاني؟

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

ماذا ستتعلم في «تضييق النوع باستخدام typeof وقيم الصواب»؟

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

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

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

كم من الوقت يستغرق درس «تضييق النوع باستخدام typeof وقيم الصواب»؟

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

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

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

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

  1. تضييق النوع باستخدام typeof وقيم الصواب
  2. تضييق النوع باستخدام instanceof وin
  3. دوال حراسة الأنواع المعرّفة من المستخدم
  4. التحقق من الشمولية باستخدام never
← العودة إلى TypeScript Academy