0Pricing
TypeScript Academy · درس

أنواع lib DOM و querySelector (التحقق الصارم من null)

افهم أنواع lib DOM وحدد العناصر بأمان باستخدام querySelector مع التحقق الصارم من null.

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

مقدمة

الهدف: استخدام أنواع مكتبة DOM وquerySelector بأمان. ستتحقق أولًا من null، ثم تستخدم الأنواع التي جرى تضييقها مع واجهات برمجة العناصر.

أنواع مكتبة DOM

توفر مكتبة DOM في TS أنواعًا للمتغيرات العامة في المتصفح (مثل Document وHTMLElement وEvent)، مما يدعم IntelliSense وعمليات التحقق.

// DOM types come from the lib DOM definitions
// Examples: Document, HTMLElement, HTMLInputElement, Event

const title: string = document.title; // Document API
console.log("Title:", title);

نوع querySelector

تعيد querySelector قيمة من النوع Element | null. ومع تفعيل strictNullChecks، يجب معالجة حالة null صراحةً.

const el = document.querySelector("#app");
// el: Element | null with strictNullChecks
console.log("Found?", el !== null);

حارس الإرجاع المبكر

أجرِ فحص الحماية مبكرًا: تحقق من null ثم أعد القيمة أو أطلق استثناءً. بعد هذا الفحص، يكون المتغير غير فارغ في ذلك الفرع.

function mount() {
  const root = document.querySelector("#app");
  if (!root) {
    console.warn("No #app found");
    return; // root is narrowed below only if present
  }
  // root: Element
  root.innerHTML = "<strong>Hello TS + DOM</strong>";
}

mount();

تضييق النوع الفرعي

ضيّق النوع أكثر باستخدام instanceof إلى نوع فرعي محدد مثل HTMLInputElement، حتى تصبح واجهات برمجة العنصر الخاصة متاحة.

function readInputValue() {
  const input = document.querySelector("#name");
  if (!(input instanceof HTMLInputElement)) {
    return; // not an <input>
  }
  // input: HTMLInputElement
  console.log("value=", input.value);
}

readInputValue();

الحذر من تأكيد عدم كون القيمة فارغة

تجنب تأكيد عدم كون القيمة فارغة (!) إلا إذا كنت متأكدًا تمامًا. تجعل فحوص الحماية بيئة التشغيل أكثر أمانًا.

function bad() {
  const root = document.querySelector("#app")!; // unsafe if #app missing
  // Potential runtime error below if root is actually null
  root.textContent = "unsafe";
}

// Prefer guarded version instead of non-null assertion

التحقق من نمط الحماية

تحقق سريع: بعد تنفيذ const el = document.querySelector("#app") مع فحوص القيم الفارغة الصارمة، ما الخطوة التالية الأكثر أمانًا؟

مراجعة

مراجعة: توفر أنواع DOM أساسًا لـ IntelliSense. تعيد querySelector قيمة من النوع Element | null؛ أجرِ فحص الحماية أولًا ثم استخدم القيمة. وضيّق النوع باستخدام instanceof للوصول إلى واجهات برمجة خاصة بالعنصر.

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

هل درس «أنواع lib DOM و querySelector (التحقق الصارم من null)» مجاني؟

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

ماذا ستتعلم في «أنواع lib DOM و querySelector (التحقق الصارم من null)»؟

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

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

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

كم من الوقت يستغرق درس «أنواع lib DOM و querySelector (التحقق الصارم من null)»؟

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

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

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

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

  1. أنواع lib DOM و querySelector (التحقق الصارم من null)
  2. أنواع الأحداث والأحداث المخصصة؛ تضييق أنواع HTMLElement الفرعية
  3. التعامل مع FormData و URL و URLSearchParams
← العودة إلى TypeScript Academy