الدرس 10 من 10
unknown بدل any
- 13 دقيقة
- 6 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
افحص قبل أن تستعمل
الشرح
any يُطفئ المترجم: كل عملية عليه مسموحة، وكل خطأ يمرّ إلى وقت التشغيل. وJSON.parse تُرجع any، فالبيانات الآتية من الخارج تدخل كودك بلا فحص. شغّل كود البداية وانظر إلى 30001: منفذ وصل نصًّا، فصار الجمع لصقًا.
unknown عكسه: يقبل أي قيمة، لكنه لا يسمح بأي عملية قبل أن تثبت ما هي. وtypeof و!== null وin تضيّق النوع خطوة بعد خطوة حتى يصير الاستعمال آمنًا.
والفخ الشائع: typeof null === "object". ففحص typeof data === "object" وحده لا يكفي قبل قراءة خاصية منه.
المطلوب
اجعل safeParse تُرجع unknown، ثم ضيّق الناتج في portFrom: تُرجع port إن كان رقمًا، و8080 في كل حالة أخرى.
معايير التصحيح
6 معايير- لا أخطاء أنواع
- ناتج safeParse لا يُستعمل قبل فحصه
- وبعد التضييق يُستعمل بلا خطأ
- portFrom تقرأ المنفذ الرقمي
- والمنفذ النصّي يُرجع 8080
- وقيمة null لا تُسقطها