كيفية إنشاء أنواع أدوات TypeScript واستخدامها
توفر TypeScript مجموعة من أنواع الأدوات المساعدة التي تسهل تحويل الأنواع الموجودة وإدارتها. تتيح أنواع الأدوات المساعدة المضمنة هذه للمطورين التعامل مع الأنواع بطرق مختلفة، مما يساعد على تبسيط التعليمات البرمجية وتجنب التكرار. يستكشف هذا الدليل بعض أنواع الأدوات المساعدة الأكثر شيوعًا وكيفية إنشاؤها واستخدامها في مشروع TypeScript.
ما هي أنواع أدوات TypeScript؟
أنواع الأدوات المساعدة في TypeScript هي أنواع محددة مسبقًا تساعد في تحويل أنواع أخرى. ويمكن استخدامها لإنشاء أنواع جديدة بناءً على أنواع موجودة إما عن طريق اختيار أو حذف أو تعديل الخصائص. وهي تلعب دورًا أساسيًا في الحفاظ على كود نظيف وقابل لإعادة الاستخدام.
أنواع أدوات TypeScript الشائعة الاستخدام
فيما يلي بعض أنواع أدوات TypeScript الأكثر استخدامًا:
- جزئيًا<T> – يجعل جميع خصائص النوع
T
اختيارية. - مطلوب<T> - يجعل جميع خصائص النوع
T
مطلوبة. - Readonly<T> – يجعل جميع خصائص النوع
T
للقراءة فقط. - Pick<T, K> – يختار مجموعة من الخصائص
K
من النوعT
. - حذف<T, K> – يزيل مجموعة من الخصائص
K
من النوعT
. - سجل<K, T> – ينشئ نوع الكائن بمفاتيح من نوع
K
وقيم من نوعT
.
مثال: استخدام جزئي<T>
يجعل نوع الأداة المساعدة Partial
جميع خصائص الواجهة اختيارية. وإليك كيفية استخدامها:
interface User {
name: string;
age: number;
email: string;
}
const updateUser = (user: Partial<User>) => {
// Update logic
};
updateUser({ name: "John" });
في هذا المثال، يقبل updateUser
وسيطة من نوع Partial<User>
، مما يعني أن بعض خصائص واجهة User
فقط مطلوبة.
مثال: استخدام Pick<T, K>
يسمح نوع الأداة المساعدة Pick
باختيار مجموعة فرعية من الخصائص من نوع:
interface User {
name: string;
age: number;
email: string;
}
type UserContactInfo = Pick<User, "name" | "email">;
const contactInfo: UserContactInfo = {
name: "John",
email: "john@example.com"
};
هنا، يقوم Pick<User, “name” | “email”>
بإنشاء نوع جديد UserContactInfo
باستخدام خصائص name
وemail
فقط من واجهة User
الأصلية.
مثال: استخدام Omit<T, K>
يقوم نوع الأداة المساعدة Omit
بإزالة خصائص محددة من نوع:
interface User {
name: string;
age: number;
email: string;
}
type UserWithoutEmail = Omit<User, "email">;
const user: UserWithoutEmail = {
name: "John",
age: 30
};
في هذا المثال، يتم إنشاء النوع UserWithoutEmail
عن طريق حذف الخاصية email
من واجهة User
.
إنشاء أنواع أدوات مساعدة مخصصة
يمكن أيضًا إنشاء أنواع أدوات مساعدة مخصصة باستخدام ميزات النوع المتقدمة في TypeScript مثل الأنواع الشرطية والأنواع المرسومة والمزيد. فيما يلي مثال بسيط لنوع أداة مساعدة مخصص يجعل جميع الخصائص اختيارية:
type MyPartial<T> = {
[P in keyof T]?: T[P];
};
interface User {
name: string;
age: number;
email: string;
}
const user: MyPartial<User> = {
name: "Alice"
};
تعمل هذه النوعية المخصصة MyPartial
بشكل مشابه لنوع الأداة المساعدة Partial
المضمنة في TypeScript.
خاتمة
تُعد أنواع الأدوات المساعدة في TypeScript ميزة أساسية للعمل مع الأنواع بطريقة مرنة وقابلة لإعادة الاستخدام. من خلال الاستفادة من أنواع الأدوات المساعدة هذه، يمكن جعل الكود أكثر إيجازًا وقابلية للصيانة. سواء باستخدام أنواع الأدوات المساعدة المضمنة مثل Partial
وPick
وOmit
أو إنشاء أنواع مخصصة، فإنها تعمل على تحسين نظام أنواع TypeScript بشكل كبير.