
cat עם name ו-age, TypeScript בונה את הטיפוס ישירות מהערכים ומחייב שה-name יהיה String ושה-age יהיה 4.name מסוג string ו-age מסוג number, בלי להכניס ערכים, ורק אחר כך לשייך אליו את האובייקט.age, או נותנים למאפיין ערך מסוג לא נכון, מתקבלת שגיאה. בהגדרות של Visual Studio Code אפשר להפעיל הצגת השגיאה בריחוף מעל הקוד.color?, מאפשר לא להגדיר את המאפיין בכלל.any, אבל בהרצאה נשאר סוג string.הטקסט המלא של הדקות הראשונות בהרצאה «סוגי אובייקטים ב-TypeScript» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו ממשיכים בטייפ סקריפט ומגיעים ל-Litheral Objects. ליטרל אובייקט זה היכולת לבנות אובייקט, בין אם זה ג'אווה סקריפט, בין אם זה טייפ סקריפט, ללא קלאס, ללא הקונספט של Classical Object Oriented.
אז אנחנו יודעים שבג'אווה סקריפט יכלנו לבצע משהו כמו let, בוא נניח cat שווה ולפתוח סוגריים מסולסלים, ולהגדיר שיש לו name בוא נניח ה name שלו זה מיצי ויש לו age בוא נניח ה age שלו זה ארבע זה היה ליטרל אובייקט בטייפסקריפט בטייפסקריפט יש לנו טיפוסים אז מה הטיפוס של cat עכשיו אז הטיפוס נבנה ישירות מהvalue הזה שאנחנו מכניסים אליו והמערכת יודעת שעכשיו cat הוא
אובייקט שחייב להיות לו name וה-Name חייב להיות String וחייב להיות לו Age וה-Age חייב להיות 4. אבל אם הייתי רוצה להגדיר סוג ורק אז להכניס את האובייקט מה היה הסוג שלו? אז בואו רגע נמחק את האובייקט הזה ונייצר קודם כל טיפוס.
אנחנו יודעים שטיפוס זה עם נקודותיים אבל מה הטיפוס? הטיפוס הוא אובייקט והאובייקט יש Name וה-Name שלו זה String ולאובייקט יש Age וה-Age שלו זה Number.
שימו לב, לא הכנסתי בתוכו Value, הגדרתי רק מה הסוג שלו. בואו ניגש עכשיו ל-Cat ונגיד שיש לו Name והוא מיצי ויש לו Age והוא 4 והכל בסדר, אין לנו שגיאות.
בואו ננסה עכשיו לקחת את אותו Cat, נשכפל, אבל נגיד, תשמע, לא בא לי להכניס לתוכו Age. כבר אנחנו רואים שפה מתחבט לשגיאה למעשה יש אפשרות להגדיר שוויז'ואל סטודיו פשוט תציג לי את השגיאות כל מה שאנחנו צריכים לעשות זה לגשת לסטינג זה לפחות מצאתי לפני כמה דקות אולי יש איזה טכניקה אחרת אבל לא גיליתי אותה
עדיין ופשוט לעשות פה איזה שהוא ריפרש כזה בואו רגע ננסה לסמן ולמחוק הכל עכשיו אנחנו רואים כאן שהקט מסומן לי בקוד עצמו, בואו רגע נחזיר את כל מה שהיה ואיזה יופי הוא ממשיך להשאיר את השגיאה, כנראה שזה באג של ויז'ואל סטודיו אבל הנה אני רואה את השגיאה כאן, אגב יש לנו אפשרות גם להציג בריחוף את השגיאה
ואני חושב שאני מנעתי את זה פה, editor over enable false כאשר הדיפולט היה true בוא נחזיר את זה ל true נרחף ונראה שהוא מסמן לי property age is missing in type בלה בלה מעולה אני אשאיר את ה true כרגע אולי אחר כך אני אחזיר אותו ל false אבל זה טוב שאנחנו מרחפים והוא מראה לי כרגע את השגיאה בסדר אז כמובן שזה error בואו נסמן דבר הזה
הוא error בואו ננסה משהו אחר ניקח רגע את מה שעבד מקודם אבל נגיד לו תשמע האג' הוא הלו בום שגיאה על האג' רגע פה הגדרת שזה נאמבר אתה לא יכול להגדיר לי הלו נסמן שגם זה אירו בואו נחזיר בחזרה את לא האמת בואו נייצר גם קולור כבר אנחנו מקבלים פה שגיאה כי אין לנו קולור נניח שהקולור הוא סטרינג אבל נגיד שאני לא בהכרח רוצה קולור זה
זה יהיה אופציונלי סימן שאלה מגדיר את המשתנה הזה כמשתנה אופציונלי אם אני רוצה אני מגדיר color בוא נגדיר white אם אני לא רוצה אני לא מגדיר color זה בסדר סימן שאלה משתנה אופציונלי מה עוד אפשר להגדיר עבור האובייקטים אז אנחנו יכולים להגדיר שהאובייקט עצמו מכיל מאפיינים שכולם סטרינגים אוקיי לדוגמה בואו ניקח איזה שהוא אובייקט
נקרא לו obj כאובייקט כללי ואני אכניס לתוכו את הדבר המוזר הבא שימו לב כלומר אני אגדיר שהסוג שלו זה הסוג הבא סוגריים מרובעים בתוך הסוגריים היא נקודותיים סטרינג ולאחר מכן נקודותיים סטרינג משהו קצת מוזר כזה אם אמרתי שיש לי name והוא סטרינג אז ברור שצריך להיות לי מאפיין name והטיפוס שלו הוא סטרינג ואם אמרתי h והוא number אז ברור שצריך להיות לי מאפיין
h שהוא number אבל מה זה הדבר המוזר הזה אז