"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > فهم "أي" و"غير معروف" و"أبدًا" في TypeScript

فهم "أي" و"غير معروف" و"أبدًا" في TypeScript

تم النشر بتاريخ 2024-08-07
تصفح:671

Understanding

يوفر TypeScript نظام كتابة قوي، ولكن بعض الأنواع يمكن أن تكون مربكة، وهي أي نوع، وغير معروف، وأبدًا. دعونا نقسمها لفهم أفضل.

أي نوع

أي نوع هو أبسط الأنواع الثلاثة. فهو يقوم بشكل أساسي بتعطيل التحقق من النوع، مما يسمح للمتغير بالاحتفاظ بأي نوع من القيمة. على سبيل المثال:

let value: any;
value = 42;             // number
value = "Hello";        // string
value = [1, 2, 3];      // array
value = () => {};       // function
value = { key: "val" }; // object
value = new Date();     // date

في جميع هذه الحالات، لا يُحدث TypeScript أي أخطاء، مما يسمح لنا بإجراء أي عملية على المتغير دون قيود الكتابة. يمكن أن يكون هذا مفيدًا عند ترحيل مشروع JavaScript إلى TypeScript. ومع ذلك، فإن الاعتماد على أي نوع ينفي فوائد سلامة النوع، مما يجعله خيارًا سيئًا في معظم الحالات. بدلاً من ذلك، فكر في استخدام غير معروف.

النوع المجهول

النوع غير المعروف أكثر أمانًا من أي نوع لأنه يتطلب فحص النوع قبل إجراء العمليات. إنه يمثل مجموعة كافة القيم الممكنة، ولكن مع فرض أمان النوع.

let value: unknown;
value = 42;
value = "Hello";

// To perform operations, we need to narrow down the type
if (typeof value === "number") {
  console.log(value   1); // TypeScript knows value is a number here
}

يعد استخدام غير معروف مفيدًا للوظائف التي تقبل أي نوع من الإدخال، مثل وظائف التسجيل، حيث أنه يفرض عمليات التحقق من النوع قبل متابعة العمليات.

النوع أبدا

يمثل النوع أبدًا مجموعة القيم الفارغة، مما يشير إلى أن شيئًا ما يجب ألا يحدث أبدًا. لا يمكن تعيين أي قيمة للكتابة مطلقًا، مما يجعلها مفيدة لعمليات التحقق الشاملة وتمثل رمزًا لا يمكن الوصول إليه.

type User = { type: "admin" } | { type: "standard" };

function handleUser(user: User) {
  switch (user.type) {
    case "admin":
      // handle admin
      break;
    case "standard":
      // handle standard
      break;
    default:
      const _exhaustiveCheck: never = user;
      // This ensures all cases are handled
  }
}

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

خاتمة

فهم أي شيء، غير معروف، ولا يعزز أبدًا أمان الكتابة في TypeScript. استخدم أي شيء بشكل مقتصد، مع تفضيل المجهول لإجراء عمليات فحص أكثر أمانًا، ولا تستخدمه مطلقًا في عمليات التحقق الشاملة والأكواد التي لا يمكن الوصول إليها. هذه الأنواع، عند استخدامها بشكل صحيح، تجعل من TypeScript أداة قوية لبناء تطبيقات موثوقة.
برمجة سعيدة!

بيان الافراج تم نشر هذه المقالة على: https://dev.to/sharoztanveer/understanding-any-unknown-and-never-in-typescript-4acb?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3