التحقق من نوع الواجهة في TypeScript
داخل TypeScript، قد تواجه سيناريو حيث يكون تحديد توافق الكائن مع واجهة محددة مسبقًا في وقت التشغيل أمرًا بالغ الأهمية . في حين أن عمليات التحقق من نوع الفئة التي تستفيد من مثيل الكلمة الأساسية تكون واضحة ومباشرة، فإن تطبيقها على الواجهات يمثل تحديًا.
أثبتت الأساليب التقليدية، مثل الاعتماد على مثيل عامل التشغيل، عدم فعاليتها نظرًا لأن الواجهات تفتقر إلى التمثيل كأنواع متميزة في JavaScript المترجمة. وبدلاً من ذلك، تقدم حراس النوع المخصص حلاً:
interface A { member: string; } function instanceOfA(object: any): object is A { return 'member' in object; } var a: any = { member: "foobar" }; if (instanceOfA(a)) { alert(a.member); }
يسمح هذا الأسلوب بالتحقق في وقت التشغيل من توافق الواجهة دون الحاجة إلى مثيل الكلمة الأساسية.
في المواقف التي يجب فيها التحقق من أعضاء متعددين، يمكن تقديم خاصية التمييز. يتطلب هذا النهج إدارة أدوات التمييز الخاصة بك وضمان التفرد لتجنب الصراعات:
interface A { discriminator: 'I-AM-A'; member: string; } function instanceOfA(object: any): object is A { return object.discriminator === 'I-AM-A'; } var a: any = { discriminator: 'I-AM-A', member: "foobar" }; if (instanceOfA(a)) { alert(a.member); }
من خلال استخدام أدوات حماية أو تمييز للأنواع المخصصة، يمكنك إجراء عمليات فحص نوع الواجهة بشكل فعال في وقت التشغيل، مما يعزز قوة تطبيقات TypeScript الخاصة بك.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3