נגישות       נגישות
שינוי גודל טקסט:
א א א
שינוי צבעי האתר:
? מקשי קיצור:

לחיצה חוזרת ונשנית על המקש Tab תעביר אתכם בין הקישורים והאזורים השונים בעמוד.

הפעלת מקשי הקיצור תלויה בדפדפן שבו אתם משתמשים.

Internet Explorer, Chrome ובגרסאות ישנות של Firefox: לחצו על מקש Alt ועל מקש המספר או האות על-פי הרשימה. ב Firefox 3 ומעלה: לחצו על המקשים Alt + Shift + המספר או האות.

S - עבור לתוכן הדף
L - חיפוש
1- עמוד הבית
2 - פרוייקטים
3 - מדריכים
4 - אודות
5 - צרו קשר
6 - הצהרת נגישות
 

סוגי משתנים בסיסיים ב-typescript

מחבר:
בתאריך:

מדריך זה הוא המדריך הרביעי בסדרת המדריכים בנושא Typescript. המדריכים הקודמים בסידרה הם:

 

typescript, כפי שמעיד השם, מצויד באפשרות להגדיר את סוג המשתנים (types) שמשמשים בקוד. במדריך זה נכיר שתי דרכים עיקריות להגדיר את סוג המשתנים, ונלמד מה כדאי לעשות, וממה עדיף להימנע כשמכריזים על משתנים.

 

דרך ראשונה: הגדרת סוג המשתנה בשורה שבה מכריזים על המשתנה

הדרך הראשונה להגדיר את סוג המשתנה היא כבר באותה השורה שבה אנו מכריזים על המשתנה.

לדוגמה, נכתוב את הקוד הבא בקובץ ששמו types.ts:

let myNumber : number;
myNumber = 42;

בשורה הראשונה, הגדרנו שהמשתנה myNumber שייך לסוג number, ולכן יכול לקבל ערכים מספריים בלבד ( קראו על יתרונות השימוש ב-let במקום ב-var כשמכריזים על משתנים ).
ובשורה השנייה הצבנו את ערכו של המשתנה (42).

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

let myNumber : number;
myNumber = "forty two";

נקמפל את הקובץ על ידי הרצת הפקודה הבאה על הקובץ types.ts, שבתוכו כתבנו את הקוד, בשורת הפקודות או בטרמינל ( קראו כיצד לעשות קומפילציה של typescript ):

> tsc types.ts

הקומפיילר ייתן לנו הודעת שגיאה. לדוגמה:

> types.ts(2,1): error TS2322: Type "forty two" is not assignable to type 'number'.

אומנם הקומפילר הראה שגיאה, אבל הקובץ javascript, שיתקבל כתוצאה מהקומפילציה, ייתן לנו קוד תקין שעובד ללא בעיה. והסיבה היא שהקובץ מקומפל ל-javascript, וב-javascript אין סוגי משתנים חזקים, ולכן ניתן לשנות את סוג המשתנה ללא בעיות.

ומזה אנחנו יכולים להסיק, שיכולים להיות מצבים שבהם קוד typescript, שאינו תקין, יכול להיות מקומפל לקוד javascript תקין, שיעבוד ללא בעיות.

אז מה הטעם בהגדרת סוג המשתנים באמצעות typescript ? הטעם הוא להימנע משגיאות שנובעות מהצבה של סוג משתנה לא נכון, ולקבל הודעות שגיאה יותר אינפורמטיביות מה-IDE.

מה שראינו עד פה היתה דרך לקבוע את סוג המשתנה באמצעות הגדרת הסוג בפעם הראשונה שבה מכריזים על המשתנה.

ועכשיו, נכיר את הדרך השנייה לקבוע את סוג המשתנה.

 

דרך שנייה: הצבת ערך למשתנה מיד כשמכריזים עליו

הדרך השנייה להגדיר את סוג המשתנה היא על ידי הצבת ערך למשתנה כבר בשורה הראשונה שבה מכריזים על המשתנה.

לדוגמה:

let myNumber = 42;

ועכשיו, אם ננסה להציב ערך שאינו מספר, הקומפיילר של typescript יראה שגיאה.

let myNumber = 42;
myNumber = "forty two";

כך נראית השגיאה בהרצה שעשיתי על המחשב אצלי.

> types.ts(2,1): error TS2322: Type "forty two" is not assignable to type 'number'.

השגיאה בקומפילציה נובעת מזה ש-typescript הסיק מהשורה שבה הוכרז המשתנה לראשונה שסוג המשתנה הוא מספר, ולכן ניסיון להציב ערך שאינו מספר יגרום לשגיאה.

שימו לב, typescript מסוגל להסיק את סוג המשתנה אם מיד כשמכריזים על משתנה, גם מציבים לו ערך, וזאת, ללא צורך לציין את סוג המשתנה.

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

לדוגמה:

let myNumber: number = 42;

 

ומה יקרה אם לא נקפיד להגדיר את סוג המשתנים? או ממה כדאי להימנע?

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

לדוגמה, הקוד הבא הוא typescript תקין לגמרי, אבל אינו מומלץ בעליל.

let myNumber;
myNumber = 42;
myNumber = "forty two";

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

והסיבה לכך שלמשתנה שמוכרז בלא להגדיר את סוגו ניתן להציב אחר כך כל סוג של ערך היא שבמידה ולא מגדירים את סוג המשתנה, typescritpt מסיק שהסוג הוא any.

כלומר, הקוד שראינו לפני רגע, נקרא על ידי typescript באופן הבא:

let myNumber: any;
myNumber = 42;
myNumber = "forty two";

זה כמובן מפספס את הפואנטה של שימוש ב-typescript כדי למנוע הצבת סוג לא נכון של ערכים, ולכן נשתדל לצמצם את השימוש בסוג any (שמאפשר הצבת כל סוג של ערכים) עד כמה שאפשר.

 

אילו סוגים בסיסיים קיימים ב- Typescript?

הסוג מחרוזת (string)

let myString: string = "this is a string";

הסוג מספר (number)

let myNumber: number = 42;

הסוג boolean

let myBoolean: boolean = true;

הסוג any (שמאפשר הצבה של כל סוגי הערכים).

let anything: any;

 

זהו, עד פה סוגי משתנים בסיסיים ב-typescript.

במדריך הבא נלמד את הנושא של מערכים ב- typescript, כיצד להכריז עליהם, ועל פונקציות מועילות לטיפול במערכים

להתראות!

 

לכל מדריכי ה-TypeScript

הוסף תגובה חדשה

 

= 5 + 8