PracticU

סוגי אובייקטים ב-TypeScript

בלי כתוביותעם כתוביות
PracticU › קורס TypeScript › סוגי אובייקטים ב-TypeScript
מילון מושגים:
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.
TypeScript - שפת תכנות המרחיבה את JavaScript בהוספת טיפוסים, ומתקמפלת ל-JavaScript רגיל.
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
קומפיילר - תוכנה שממירה קוד מקור שנכתב בשפת תכנות לקוד שהמחשב יכול להריץ, ומדווחת על שגיאות תחביר.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
מאפיין - תכונה שמצמידים לרכיב ומתארת אותו או את התנהגותו, למשל מאפיין של תגית HTML או שדה באובייקט.

סוגי אובייקטים ב-TypeScript
ההרצאה מראה איך ב-TypeScript מגדירים טיפוס לאובייקט ליטרלי, כלומר אובייקט שנבנה ישירות בלי מחלקה, ואיך הקומפיילר בודק שהערכים תואמים לטיפוס.
השלבים העיקריים
1. טיפוס שנגזר מהערך: כשכותבים אובייקט cat עם name ו-age, TypeScript בונה את הטיפוס ישירות מהערכים ומחייב שה-name יהיה String ושה-age יהיה 4.
2. הגדרת טיפוס לפני הערכים: אפשר לכתוב קודם טיפוס אובייקט, למשל name מסוג string ו-age מסוג number, בלי להכניס ערכים, ורק אחר כך לשייך אליו את האובייקט.
3. שגיאות: אם משמיטים את age, או נותנים למאפיין ערך מסוג לא נכון, מתקבלת שגיאה. בהגדרות של Visual Studio Code אפשר להפעיל הצגת השגיאה בריחוף מעל הקוד.
4. מאפיין אופציונלי: סימן שאלה, כמו ב-color?, מאפשר לא להגדיר את המאפיין בכלל.
5. אינדקס עם מפתחות טקסט: הגדרה בסוגריים מרובעים שבה המפתח הוא string והערך string מאפשרת לאובייקט להכיל מאפיינים בכל שם שהוא. כל הערכים חייבים להיות string, ולכן ערך מספרי כמו נפח מנוע 8,000 גורם לשגיאה.
שימו לב
המדריך מציין שהשימוש באינדקס כזה נדיר. אם רוצים לאפשר ערכים מכל סוג אפשר להגדיר any, אבל בהרצאה נשאר סוג string.
עכשיו אפשר להגדיר טיפוס לאובייקט ליטרלי, לסמן בו מאפיינים אופציונליים ולהגביל אובייקט כללי לערכי טקסט.
השיעור הבא בקורס: מערך Array ב-TypeScript

פרקי ההרצאה: סוגי אובייקטים ב-TypeScript

  1. 00:00

    ליטרל אובייקט ללא Class

  2. 00:39

    טיפוס שנגזר מערכי האובייקט

  3. 01:21

    הגדרת טיפוס לאובייקט מראש

  4. 01:58

    שגיאה על מאפיין חסר

  5. 02:57

    הצגת שגיאות בריחוף בעורך

  6. 04:18

    מאפיין אופציונלי עם סימן שאלה

  7. 04:55

    Index Signature למאפייני string

תמלול ההרצאה: סוגי אובייקטים ב-TypeScript

הטקסט המלא של הדקות הראשונות בהרצאה «סוגי אובייקטים ב-TypeScript» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    אנחנו ממשיכים בטייפ סקריפט ומגיעים ל-Litheral Objects. ליטרל אובייקט זה היכולת לבנות אובייקט, בין אם זה ג'אווה סקריפט, בין אם זה טייפ סקריפט, ללא קלאס, ללא הקונספט של Classical Object Oriented.

  2. 00:20

    אז אנחנו יודעים שבג'אווה סקריפט יכלנו לבצע משהו כמו let, בוא נניח cat שווה ולפתוח סוגריים מסולסלים, ולהגדיר שיש לו name בוא נניח ה name שלו זה מיצי ויש לו age בוא נניח ה age שלו זה ארבע זה היה ליטרל אובייקט בטייפסקריפט בטייפסקריפט יש לנו טיפוסים אז מה הטיפוס של cat עכשיו אז הטיפוס נבנה ישירות מהvalue הזה שאנחנו מכניסים אליו והמערכת יודעת שעכשיו cat הוא

  3. 01:00

    אובייקט שחייב להיות לו name וה-Name חייב להיות String וחייב להיות לו Age וה-Age חייב להיות 4. אבל אם הייתי רוצה להגדיר סוג ורק אז להכניס את האובייקט מה היה הסוג שלו? אז בואו רגע נמחק את האובייקט הזה ונייצר קודם כל טיפוס.

  4. 01:21

    אנחנו יודעים שטיפוס זה עם נקודותיים אבל מה הטיפוס? הטיפוס הוא אובייקט והאובייקט יש Name וה-Name שלו זה String ולאובייקט יש Age וה-Age שלו זה Number.

  5. 01:36

    שימו לב, לא הכנסתי בתוכו Value, הגדרתי רק מה הסוג שלו. בואו ניגש עכשיו ל-Cat ונגיד שיש לו Name והוא מיצי ויש לו Age והוא 4 והכל בסדר, אין לנו שגיאות.

  6. 01:54

    בואו ננסה עכשיו לקחת את אותו Cat, נשכפל, אבל נגיד, תשמע, לא בא לי להכניס לתוכו Age. כבר אנחנו רואים שפה מתחבט לשגיאה למעשה יש אפשרות להגדיר שוויז'ואל סטודיו פשוט תציג לי את השגיאות כל מה שאנחנו צריכים לעשות זה לגשת לסטינג זה לפחות מצאתי לפני כמה דקות אולי יש איזה טכניקה אחרת אבל לא גיליתי אותה

  7. 02:26

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

  8. 03:10

    ואני חושב שאני מנעתי את זה פה, editor over enable false כאשר הדיפולט היה true בוא נחזיר את זה ל true נרחף ונראה שהוא מסמן לי property age is missing in type בלה בלה מעולה אני אשאיר את ה true כרגע אולי אחר כך אני אחזיר אותו ל false אבל זה טוב שאנחנו מרחפים והוא מראה לי כרגע את השגיאה בסדר אז כמובן שזה error בואו נסמן דבר הזה

  9. 03:45

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

  10. 04:22

    זה יהיה אופציונלי סימן שאלה מגדיר את המשתנה הזה כמשתנה אופציונלי אם אני רוצה אני מגדיר color בוא נגדיר white אם אני לא רוצה אני לא מגדיר color זה בסדר סימן שאלה משתנה אופציונלי מה עוד אפשר להגדיר עבור האובייקטים אז אנחנו יכולים להגדיר שהאובייקט עצמו מכיל מאפיינים שכולם סטרינגים אוקיי לדוגמה בואו ניקח איזה שהוא אובייקט

  11. 04:58

    נקרא לו obj כאובייקט כללי ואני אכניס לתוכו את הדבר המוזר הבא שימו לב כלומר אני אגדיר שהסוג שלו זה הסוג הבא סוגריים מרובעים בתוך הסוגריים היא נקודותיים סטרינג ולאחר מכן נקודותיים סטרינג משהו קצת מוזר כזה אם אמרתי שיש לי name והוא סטרינג אז ברור שצריך להיות לי מאפיין name והטיפוס שלו הוא סטרינג ואם אמרתי h והוא number אז ברור שצריך להיות לי מאפיין

  12. 05:36

    h שהוא number אבל מה זה הדבר המוזר הזה אז

לקורס המלא: קורס TypeScript אונליין

ההרצאה הקודמת: סוגי משתנים ב-TypeScript

ההרצאה הבאה: מערך Array ב-TypeScript

הרצאות קשורות מקורסים אחרים

  • Typescript
  • מערך של אובייקטים - Objects Array
  • סוגי בדיקות
  • סוגי משתנים

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס ריאקט - React
  • קורס NodeJS