כיצד ליצור ולהשתמש בסוגי עזר מסוג TypeScript
TypeScript מספק קבוצה של סוגי עזר שמקלים על שינוי וניהול סוגים קיימים. סוגי השירותים המובנים הללו מאפשרים למפתחים לתפעל טיפוסים בדרכים שונות, ועוזרים לפשט את הקוד ולהימנע מחזרות. מדריך זה בוחן כמה מסוגי השירות הנפוצים ביותר וכיצד ניתן ליצור אותם ולהשתמש בהם בפרויקט TypeScript.
מהם סוגי כלי השירות TypeScript?
סוגי עזר ב-TypeScript הם סוגים מוגדרים מראש המסייעים בשינוי סוגים אחרים. ניתן להשתמש בהם ליצירת סוגים חדשים המבוססים על סוגים קיימים על ידי בחירה, השמטה או שינוי מאפיינים. הם ממלאים תפקיד חיוני בשמירה על קוד נקי לשימוש חוזר.
סוגי עזר מסוג TypeScript הנפוצים
להלן כמה מסוגי השירות הנפוצים ביותר של TypeScript:
- חלקי<T> – הופך את כל המאפיינים מסוג
T
לאופציונליים. - חובה<T> - מחייב את כל המאפיינים מסוג
T
. - לקריאה בלבד<T> - הופך את כל המאפיינים מסוג
T
לקריאה בלבד. - בחר<T, K> – בוחר קבוצה של מאפיינים
K
מהסוגT
. - השמט<T, K> – מסיר קבוצה של מאפיינים
K
מהסוגT
. - רשומה<K, T> – בונה סוג אובייקט עם מפתחות מסוג
K
וערכים מסוגT
.
דוגמה: שימוש בחלקי<T>
סוג השירות חלקי
הופך את כל המאפיינים של ממשק לאופציונליים. כך ניתן להשתמש בו:
interface User {
name: string;
age: number;
email: string;
}
const updateUser = (user: Partial<User>) => {
// Update logic
};
updateUser({ name: "John" });
בדוגמה זו, updateUser
מקבל ארגומנט מסוג חלקי<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
עם רק שם
ו- מאפייני אימייל
מהממשק המקורי של משתמש
.
דוגמה: שימוש ב-Omit<T, K>
סוג השירות השמט
מסיר מאפיינים שצוינו מסוג:
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 הם תכונה חיונית לעבודה עם טיפוסים בצורה גמישה וניתנת לשימוש חוזר. על ידי מינוף סוגי השירותים הללו, ניתן להפוך את הקוד לתמציתי וניתן לתחזוקה יותר. בין אם משתמשים בסוגי עזר מובנים כמו חלקי
, בחר
והשמט
או יצירת תוכניות מותאמות אישית, הם לשפר משמעותית את מערכת הטיפוסים של TypeScript.