تخطَّ إلى المحتوى

satisfies

التحقّق من نوع دون فقدان الدقّة satisfies

satisfies يتحقّق من مطابقة قيمة لنوع معيّن، لكن دون توسيع نوعها المُستنتَج كما يفعل التحديد الصريح : Type.

يقع satisfies بين التحديد الصريح (`: Type`) والتحويل (`as Type`): مثل التحديد الصريح، يفحص المترجم أن القيمة تطابق الشكل المطلوب ويرفض أي خطأ إملائي أو حقل ناقص. لكن خلافًا للتحديد الصريح، لا يُوسِّع نوع النتيجة إلى Type العام — يبقي أدق نوع مُستنتَج من القيمة نفسها.

أُضيف في TypeScript 4.9.

الصياغة

value satisfies Type

📄 مثال

type Status = "pending" | "shipped" | "delivered";

const statusColor = {
  pending: "orange",
  shipped: "blue",
  delivered: "green",
} satisfies Record<Status, string>;

// النوع المستنتَج لا يزال دقيقًا لكل مفتاح، والتحقق من الشكل تمّ أيضًا
statusColor.delivered.toUpperCase();

أهم النقاط

العنصرالوظيفة
valueالكائن أو التعبير المراد التحقّق منه
Typeالشكل المطلوب مطابقته (غالبًا Record أو واجهة)

💡 نصائح عملية

  • استخدمه لكائنات إعدادات وخرائط حالة ثابتة تريد التحقّق من اكتمالها مع بقاء أدق نوع ممكن متاحًا لبقية الكود

⚠️ أخطاء شائعة

  • استخدام as بدل satisfies عند الحاجة الفعلية لتحقّق من الشكل — as لا يفحص شيئًا ويخفي أخطاء إملائية

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار TYPESCRIPT الكامل بالعربي.