מה ההפך מ-Omit ב-TypeScript?

Mh Hhpk M Omit B Typescript



כאשר רק מאפיינים מסוימים של הממשק נחוצים לתהליך הביצוע, המאפיינים הבלתי נדרשים הופכים לגורם העיקרי לביצועים נמוכים מכיוון שכעת הם צורכים מקום בלבד. ב-JavaScript, אין דרך להוציא מאפיינים לא נחוצים של הממשק בזמן הביצוע. לְמַרְבֶּה הַמַזָל! נקודת תורפה או מקרה שימוש זה מטופל על ידי TypeScript מכיוון שהוא מספק כלי עזר מסוג 'השמט' ו'בחר', מה שעוזר רבות בבחירת מאפיינים ספציפיים בלבד.

בלוג זה יסביר את סוג ההשמטה וההיפך שלו ב-TypeScript על ידי כיסוי הסעיפים הבאים:







  • מהו ה-Omit Type ב-TypeScript?
  • מה ההיפך מ-Omit Type ב-TypeScript?

מהו ה-Omit Type ב-TypeScript?

ה-TypeScript 'לְהַשְׁמִיט' סוג יוצר ממשק חדש מהמסופק '' ומדלג או אינו כולל את המאפיינים שסופקו כ 'מַפְתֵחַ' . הוא לוקח ומטפל בערכים עבור כל המאפיינים הנותרים ואינו מקבל ערכים עבור המאפיינים שהועברו כ 'מַפְתֵחַ' . במילים פשוטות, ה 'לְהַשְׁמִיט' סוג אינו כולל את המאפיינים שהועברו כ'מפתח' ושאר המאפיינים נשארים זהים.



תחביר
התחביר עבור Omit Type ב-TypeScript מצוין להלן:



לְהַשְׁמִיט < demoType, Key1 | מפתח 2 >

איפה 'demoType' הוא הממשק שלו 'מפתח 1' ו 'מפתח 2' נכסים הולכים להתווסף לחדש 'סוּג' שנוצר באמצעות 'לְהַשְׁמִיט' .





דוגמה להבנת 'לְהַשְׁמִיט' הסוג מצוין להלן:

סוּג linuxhintType = {
fName: מחרוזת;
lName: מחרוזת;
גיל: מספר;
}

סוּג newType = השמט;

const specific: newType = {
fName: 'ג'ון' ,
שם: 'צְבִיָה'
} ;

console.log ( specific.age, specific.fName ) ;

הסבר על הקוד לעיל:



  • קודם ה 'סוּג' בשם 'linuxhintType' מוגדר, המכיל מספר מאפיינים בשם 'fName' , 'לשם' , ו 'גיל' בּוֹ.
  • לאחר מכן, ה 'לְהַשְׁמִיט' סוג משמש אשר לוקח 'linuxhintType' כטיעון הראשון ומפתח של 'גיל' . השמטה זו מאחזרת את כל המאפיינים מ 'linuxhintType' ואינו כולל רק את נכס ה'גיל'.
  • המאפיינים שאוחזרו דרך סוג 'השמט' מאוחסנים בחדש 'סוּג' בשם 'סוג חדש' .
  • לאחר מכן, המשתנה החדש נוצר עם הערת סוג של 'סוג חדש' והערכים עבור המאפיינים הנותרים נקבעים.
  • לאחר מכן, בעזרת משתנה חדש, המאפיינים הנותרים והלא נכללים מאוחזרים ומוצגים בחלון המסוף לצורך אימות.

לאחר ההידור, חלון המסוף נראה כך:

תמונת המצב של חלון המסוף מראה שנוצרה שגיאת סוג בזמן הגישה ל'לא נכלל' 'גיל' תכונה. להסבר נוסף על סוג 'השמט', אתה יכול לבקר את המשויך שלנו מאמר

מה ההיפך מ-Omit Type ב-TypeScript?

ב-TypeScript, ההפך מ- 'לְהַשְׁמִיט' האם ה 'לִבחוֹר' סוּג. סוג זה בוחר או בוחר את המאפיינים הספציפיים שיהיו זמינים וכל הנכסים הנותרים שלא נבחרו לא ייכללו. כלומר, הפוך לחלוטין מה 'לְהַשְׁמִיט' סוּג. זה לוקח את אותם שני טיעונים של 'סוּג' ו 'מַפְתֵחַ' איפה 'סוּג' הוא הממשק או המחלקה שלו 'מַפְתֵחַ' נכסים כלולים והשאר אינם נכללים. במקרה של מספר נכסים, כל נכס מופרד על ידי ניצול של 'הִתאַחֲדוּת' מַפעִיל '|'.

תחביר
התחביר ל-Pick Type ב-TypeScript מצוין להלן:

לִבחוֹר < demoType, Key1 | מפתח 2 | מפתח 3 >

איפה, 'demoType' הוא הממשק, המחלקה או הסוג שלו 'מפתח 1' , 'מפתח 2' , ו 'מפתח 3' נכסים נבחרים.

כעת, בואו נעבור על דוגמה להבהרה טובה יותר.

דוגמה: בחירת מאפיינים ספציפיים

במקרה זה, המאפיינים הספציפיים מהממשק או המחלקה נבחרים באמצעות סוג 'Pick', והמאפיינים הנותרים אינם נכללים לחלוטין, כפי שמוצג להלן:

ממשק linuxhintInter {
fName: מחרוזת;
lName: מחרוזת;
גיל: מספר;
}
סוּג newType = בחר;
const specific: newType = {
fName: 'ג'ון' ,
שם: 'צְבִיָה' , גיל: 3. 4 } ;

הסבר על הקוד לעיל:

  • ראשית, הממשק 'linuxhintInter' נוצר המכיל שלושה מאפיינים בשם 'fName' , 'לשם' , ו 'גיל' .
  • לאחר מכן, ה 'לִבחוֹר' נעשה שימוש ב-type שלוקח את הממשק כפרמטר הראשון, ו 'גיל' ו 'fName' כפרמטר השני המופרד על ידי מפעיל האיחוד '|' .
  • זֶה 'לִבחוֹר' סוג מגדיר סוג חדש בשם 'סוג חדש' זה כולל בלבד 'גיל' ו 'fName' נכסים ואינו כולל את כל הנכסים הנותרים, כלומר. 'לשם' .
  • עכשיו, הגדר את זה 'סוג חדש' כסוג למשתנה 'ספציפי' ולנסות לשנות את כל מאפייני הממשק. זה יעורר שגיאה מכיוון שרק מאפיינים ספציפיים זמינים.

לאחר הקומפילציה, חלון המסוף נראה כך:

תמונת המצב שלמעלה מציגה את התרחשות השגיאה מכיוון שהתוכנית משנה את המאפיין שאינו כלול או אינו זמין בסוג הנבחר.

למדת על הסוג שפועל בניגוד ל-Omit ב-TypeScript.

סיכום

ההפך מה 'לְהַשְׁמִיט' סוג ב-TypeScript הוא 'לִבחוֹר' type, אשר יוצר סוג חדש הכולל רק את המאפיין שסופק ואינו כולל את כל המאפיינים הנותרים של הממשק הראשי. בזמן ש 'לְהַשְׁמִיט' הקלד ב-TypeScript, נוצר גם סוגים חדשים אך אינו כולל את כל המאפיינים שסופקו ומקבל או כולל את המאפיינים הנותרים. מאמר זה הדגים את ההיפך מ-Omit Type ב-TypeScript.