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 الكامل بالعربي.