الكتابة البنيوية والتحقق من الخصائص الزائدة
افهم الكتابة البنيوية في TypeScript، وكيف تمنع عمليات التحقق من الخصائص الزائدة البُنى غير المقصودة للكائنات.
الكتابة البنيوية والتحقق من الخصائص الزائدة درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 3 دروس في المجموع.
مقدمة
الهدف: تعلم structural typing، حيث تعتمد التوافقية على وجود الأعضاء الصحيحة، وفهم كيفية عمل excess property checks مع كائنات object literals.
الكتابة البنيوية
Structural typing: تعتمد التوافقية على البنية. فإذا احتوى الكائن على الخصائص المطلوبة على الأقل، فسيُقبل حتى مع وجود خصائص إضافية.
interface Point { x: number; y: number; }
function logPoint(p: Point) {
console.log(p.x, p.y);
}
const a = { x: 5, y: 7, z: 99 };
logPoint(a); // OK because it has x and yالاسمية مقابل البنيوية
على خلاف الأنظمة الاسمية، يتوافق Point2D مع Coord لأنهما يشتركان في البنية نفسها.
type Point2D = { x: number; y: number };
type Coord = { x: number; y: number };
const p: Point2D = { x: 1, y: 2 };
const q: Coord = p; // OK, same structureفشل فحص الخصائص الزائدة
تنطبق excess property checks على object literals المسندة مباشرةً. وتؤدي الخصائص الإضافية غير الموجودة في النوع الهدف إلى أخطاء.
interface User { id: number; name: string }
const u: User = { id: 1, name: "Ada", age: 30 }; // Error: excess property "age"تجاوز الفحص
يؤدي الإسناد عبر متغير إلى تجاوز excess property checks. يتيح ذلك مرونة أكبر، لكن احذروا من الخصائص غير المقصودة.
const raw = { id: 1, name: "Ada", age: 30 };
const u: User = raw; // OK, because variable assignment skips excess checkإرشادات
إرشادات:
- تجعل structural typing لغة TS مرنة.
- تكشف excess checks الأخطاء مبكرًا.
- استخدموا المتغيرات عندما تكون الحقول الإضافية مقصودة.
تحقق من الكتابة البنيوية
تحقق سريع: أي العبارات التالية صحيحة بشأن structural typing؟
مراجعة
مراجعة: يستخدم TypeScript أسلوب structural typing؛ إذ تتطابق الأنواع حسب أعضائها. وتحمي excess property checks كائنات object literals. تذكروا كيفية تجاوزها بحذر.
الأسئلة الشائعة
هل درس «الكتابة البنيوية والتحقق من الخصائص الزائدة» مجاني؟
نعم — نص درس «الكتابة البنيوية والتحقق من الخصائص الزائدة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 3 دروس في المجموع.
ماذا ستتعلم في «الكتابة البنيوية والتحقق من الخصائص الزائدة»؟
افهم الكتابة البنيوية في TypeScript، وكيف تمنع عمليات التحقق من الخصائص الزائدة البُنى غير المقصودة للكائنات. تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟
لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «الكتابة البنيوية والتحقق من الخصائص الزائدة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟
نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أنواع الكائنات، والاختيارية/للقراءة فقط، وتوقيعات الفهرسة
- الواجهات مقابل الأسماء المستعارة للأنواع
- الكتابة البنيوية والتحقق من الخصائص الزائدة