Utility Types
Utility Types
Utility Types
TypeScript توفر utility types جاهزة لتشكيل أنواع جديدة. Pick<User, "id" | "name"> يأخذ جزءاً من النوع. Partial<User> يجعل كل الخصائص اختيارية. Readonly<User> يمنع تعديل الخصائص. هذه الأدوات تقلل التكرار عندما تستخدمها بوعي.
لا تستخدم Partial كحل عام لكل مشكلة. إذا كانت دالة تحتاج فقط تحديث البريد، ربما اكتب نوعاً أدق. لكن في update forms أو patch objects، Partial قد يكون مناسباً.
مثال عملي
هذه الأنواع مشتقة من User. إذا تغير اسم خاصية في User، ستظهر الأخطاء في المشتقات.
utility types إضافية — Additional Utility Types
المجموعة الأساسية أكبر من Pick/Partial/Readonly. إليك أهمها:
استخدم هذه الأنواع لتجنب التكرار. نوع Without يضمن أن password لن تُرسَل للعميل. نوع FetchArgs يُمكّنك من توثيق توقعات الاختبار بدون تكرار.
تصفية الـ union — Filtering Unions
Exclude وExtract يعملان على union types لتصفيتها:
Exclude يُستخدم لإزالة حالة من union (مفيد عند إخفاء خيار مؤقت). Extract يُستخدم لعزل نوع معين من union عام (مفيد عند التضييق).