📋 محتويات الصفحة
📖 الوصف
TypeScript يوفر مجموعة مدمجة من الأنواع المساعدة (Utility Types) تسمح بتحويل وتعديل الأنواع الموجودة لإنشاء أنواع جديدة. هذه الأنواع تُغني عن كتابة utility types مخصصة في معظم الحالات الشائعة. تشمل الأنواع المساعدة: `Partial<T>`, `Required<T>`, `Readonly<T>`, `Pick<T, K>`, `Omit<T, K>`, `Record<K, ...
🎯 يستخدم في
مجالات استخدام هذه الأداة
تحويل خصائص النوع إلى اختيارية (Partial) أو مطلوبة (Required)
اختيار خصائص محددة من نوع (Pick) أو استبعادها (Omit)
إنشاء أنواع mapping مع Record
استخراج أنواع الدوال (ReturnType
Parameters)
Type narrowing والتعامل مع unions
✨ المميزات
أبرز مميزات هذه الأداة
مدمجة في TypeScript – لا تحتاج مكتبات خارجية
أكثر من 20 utility type جاهز
تحسن من type safety وقراءة الكود
مدعومة بشكل كامل من IDE
تُستخدم في جميع أنماط TypeScript
⚠️ العيوب
نقاط يجب مراعاتها
بعض الأنواع المتقدمة قد تحتاج تخصيص
لا توجد utility types للتعامل مع Arrays بشكل مباشر
تحتاج فهم عميق للـ type system لاستخدامها بشكل فعال
بعض الأنواع معقدة للمبتدئين
🔄 البدائل
أدوات بديلة يمكنك استخدامها
💻 مثال على الاستخدام
كيفية استخدام هذه الأداة
// Partial - all properties optional
interface User { name: string; email: string; age: number; }
type UpdateUser = Partial<User>;
// { name?: string; email?: string; age?: number; }
// Pick - select specific properties
type UserName = Pick<User, 'name' | 'email'>;
// { name: string; email: string; }
// Omit - exclude specific properties
type UserWithoutAge = Omit<User, 'age'>;
// { name: string; email: string; }
// Record - create object type
type UserRoles = Record<'admin' | 'user' | 'guest', string>;
// { admin: string; user: string; guest: string; }
// ReturnType - get function return type
const getUser = (): User => ({ name: 'A', email: 'a@b.c', age: 25 });
type UserReturn = ReturnType<typeof getUser>; // User
// Parameters - get function parameters type
type UserParams = Parameters<(name: string, age: number) => void>;
// [name: string, age: number]
📚 أدوات أخرى في TypeScript
قد يعجبك أيضاً
Drizzle-Type
⭐أنواع TypeScript لـ Drizzle ORM (ORM Type Definitions)
Prisma-Type
⭐أنواع TypeScript لـ Prisma ORM (ORM Type Definitions)
tRPC
⭐نقل الأنواع من الخادم للواجهة (End-to-End Type Safety)
ts-node
⭐مُشغّل TypeScript (TypeScript Runtime)
tsx
⭐مُشغّل TypeScript سريع (Fast TypeScript Runtime)
TypeChallenges
⭐مصدر تعلم TypeScript عن طريق التحدي (TypeScript Learning Resource)