في لغة برمجة الكتابة المطبوعة ، يتم استخدام معلمة الدعائم لنقل البيانات من مكون إلى آخر. ومع ذلك ، في بعض الحالات ، يمكن تعيين نوع هذه المعلمة ضمنيا مثل أي. في هذه المقالة ، سننظر في كيفية تأثير ذلك على تشغيل البرنامج وكيفية تجنب مثل هذا الموقف.
عندما يتم تعيين نوع معلمة الدعائم ضمنيا مثل أي ، فهذا يعني أنه يمكن تمرير أي قيمة إليها دون التحقق من النوع. يمكن أن يؤدي هذا الأسلوب إلى حدوث أخطاء في تشغيل البرنامج ، نظرا لأن مترجم الكتابة المطبوعة لن يتحقق من مطابقة النوع عند نقل البيانات. هذا يمكن أن يؤدي إلى نتائج غير متوقعة وصعوبات في تصحيح البرنامج.
لتجنب التحديد الضمني لنوع أي لمعلمة الدعائم ، يجب عليك تحديد نوع البيانات التي سيتم تمريرها إلى هذه المعلمة بشكل صريح. في الكتابة المطبوعة ، يمكن القيام بذلك باستخدام واجهات أو أنواع. وبالتالي ، سيتمكن مترجم الكتابة المطبوعة من التحقق من أنواع البيانات عند تجميع البرنامج والتحذير من وجود خطأ في حالة عدم تطابق النوع.
- اكتب أي لمعلمة الدعائم
- التنازل الضمني
- التعريف والتطبيق
- مزايا وعيوب
اكتب أي لمعلمة الدعائم
في الكتابة المطبوعة ، من الممكن استخدام أي نوع لمعلمة الدعائم في مكونات التفاعل. يسمح لك هذا النوع بتمرير أي قيم إلى المكون دون فحص أنواع الصب.
يمكن أن يكون استخدام أي نوع لمعلمة الدعائم مفيدا في الحالات التالية:
- عندما تكون بنية الدعائم ديناميكية وقد تتغير اعتمادا على سيناريوهات مختلفة لاستخدام المكون.
- عندما يتم تمرير المعلمات من خلال يمر من مكتبة طرف ثالث أو أبي ، وليس من الممكن تحديد أنواعها مقدما.
ومع ذلك ، يجب أن نتذكر أن استخدام أي نوع يمكن أن يؤدي إلى مشاكل أثناء التطوير:
- يمكن أن يؤدي عدم وجود كتابة ثابتة إلى حدوث أخطاء أثناء تنفيذ البرنامج ، نظرا لأن مترجم الكتابة المطبوعة لن يكون قادرا على اكتشاف الاستخدام غير الصحيح للممرات.
- يمكن أن يؤدي عدم التحقق من النوع إلى تعقيد دعم الكود وزيادة احتمالية حدوث أخطاء عند تغيير المكون أو توسيعه.
- قد تكون هناك مشاكل في الإكمال التلقائي والتلميحات في برامج تحرير التعليمات البرمجية ، نظرا لأن مترجم الكتابة المطبوعة لن يكون قادرا على تحديد أنواع التمريرات.
لذلك ، إذا أمكن ، يوصى باستخدام أنواع أكثر تحديدا لمعلمة الدعائم. إذا كانت بنية الدعائم ثابتة ولا تتغير ، فيمكنك تحديد واجهة أو نوع للدعائم واستخدامها كنوع معلمة الدعائم.
مثال على استخدام أي نوع لمعلمة الدعائم في أحد المكونات:
عودة (
الاسم: {props.name}
عمر: {الدعائم.العمر}
في هذا المثال ، يقبل مكون ميكومبوننت الدعائم مع اسم الحقول (سلسلة) والعمر (عدد) ، ولكن يتم تعيين نوع المعلمة الدعائم كما أي ، والذي يسمح لك لتمرير أي قيم إلى الدعائم المكون دون التحقق من نوع.
ومع ذلك ، يوصى باستخدام أنواع أكثر دقة لمعلمات الدعامة لضمان أمان ودعم الكود أثناء التطوير.
التنازل الضمني
عندما نتحدث عن تعيين ضمني ، فإننا نشير إلى المواقف التي يقوم فيها النص المطبوع تلقائيا بتعيين النوع "أي" لقيمة أو معلمة معينة. أي أن الكتابة المطبوعة لا تتحقق من الأنواع لقيمة معينة ، ويمكن أن تحتوي على أي نوع ممكن ، مما قد يؤدي إلى مشاكل وأخطاء محتملة أثناء تنفيذ البرنامج.
في كثير من الأحيان ، يحدث تعيين ضمني لنوع "أي" عندما يتعذر على الكتابة المطبوعة تحديد نوع القيمة بشكل فريد. على سبيل المثال ، يمكن أن يحدث هذا إذا لم نقم بتحديد النوع بشكل صريح ولم نستخدم التعليقات التوضيحية للنوع ، أو لا يمكن أن يستنتج النص المطبوع النوع من سياق البرنامج.
لحسن الحظ ، توفر الكتابة المطبوعة القدرة على تحديد نوع بشكل صريح لتجنب تحديد نوع "أي" ضمنيا. هذا يجعل الكود أكثر وضوحا ويمنع الأخطاء المحتملة. على سبيل المثال ، بدلا من التحديد الضمني للنوع" أي " لمعلمة الدعائم ، يمكننا تحديد النوع صراحة ، على سبيل المثال ، كائن من نوع الدعائم:
الدعائم واجهة {
الاسم: سلسلة;
العمر: العدد;
}
وظيفة برينتديتايلز (الدعائم: الدعائم) {
- وحدة التحكم.سجل ('الاسم: {{props.name} ، العمر: {{الدعائم.العمر}`);
- }
- تفاصيل الطباعة ({ الاسم: 'جون' ، العمر: 25 });
| في هذا المثال ، حددنا واجهة الدعائم ، والتي تحدد أنواع خصائص الاسم (السلسلة) والعمر (الرقم). ثم نحدد صراحة نوع الدعائم لمعلمة الدعائم في وظيفة تفاصيل الطباعة. هذا يمنع التعيين الضمني لنوع" أي " ويخبر تيبسكريبت الأنواع التي يمكن توقعها. | |
|---|---|
| يعد الإعلان عن الأنواع واستخدام التعليقات التوضيحية من الممارسات المهمة في الكتابة المطبوعة. إنها تزيد من موثوقية الكود ، وتسهل قراءته وتسهل اكتشاف الأخطاء المحتملة. لذلك ، يوصى دائما بتعيين الأنواع بشكل صريح وتجنب تحديد نوع "أي" ضمنيا. | التعريف والتطبيق |
كود
زر
- استيراد رد فعل من 'رد فعل';
- زر كونست = (الدعائم: أي) = > {
- عودة (
- {الدعائم.التسمية}
);
- }
- تصدير الزر الافتراضي;
- كما ترى من المثال ، فإن معلمة الدعائم هي نوع محدد ضمنيا من أي نوع. وهذا يعني أنه يمكن قبول أي خصائص (على سبيل المثال أونكليك والتسمية) وقيمها دون قيود.