كيفية إنشاء أنواع أدوات 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 بشكل كبير.