TypeScript - חלק ד': איך כותבים Enum

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

TypeScript מאפשר לנו לחייב את המשתמש לבחור רק מתוך הערכים שאנו מאפשרים ב-Enum ובכך לוודא שהוא לא מכניס ערכים שחורגים ממה שאנחנו מצפים לקבל. [עוד]

תגיות:

TypeScript - חלק ג': הגדרת Interface

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

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

מכיוון ש-JavaScript היא שפה דינמית אין בה את האפשרות ל-Interface כמשהו מחייב כמו בשפות אחרות (כמו ב- C Sharp למשל) ולכן ההוספה של Interface ל-TypeScript יכולה לעזור לנו בצורה משמעותית כאשר נרצה להשתמש בכך. [עוד]

תגיות:

TypeScript - חלק ב': איך כותבים Class

TypeScript הופך את כתיבת ה-Class להרבה יותר נוח לכתיבה ובטוח לשימוש בהשוואה ל-JavaScript, מכיוון שהוא מאפשר לנו לכתוב בצורה שיותר מוכרת לנו משפות תכנות אחרות כולל בנאים ומאפיינים ובנוסף הוא מוודא שכל שימוש ב-Class נעשה בצורה נכונה: שסוג המשתנים מתאים למה שהגדרנו ודרשנו מהלקוחות של ה-Class שבנינו, שלא יוצרים Class ללא השדות שהם חובה וכו'. [עוד]

תגיות:

מה זה Bower ואיך מתקינים Bower על Windows

Bower הוא מנהל ספריות קוד (או חבילות קוד), בדומה ל-Nuget ב-Visual Studio אך בשונה ממנו Bower הוא בעיקר עבור ספריות צד לקוח כמו ספריות JavaScript או css למניהם (לדוגמא: Angular, bootstrap, וכו').

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

הפונקציה replace ב- Javascript מחליפה רק את המופע הראשון

כאשר ניסיתי לעשות החלפה של טקסט ב-Javascript נתקלתי בתופעה מענייינת, הטקסט המוחלף היה רק המופע הראשון שרציתי להחליף.
במאמר זה אסביר איך לפתור את הבעיה הזאת [עוד]

מערכים ב-JavaScript - פונקציות לעדכון, עריכה ומחיקה

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

תגיות:

מערכים ב JavaScript - יצירה ואתחול של מערך

מדריך על יצירה של מערך ב-JavaScript, איך ליצור מערך בדרכים שונות ומה ההבדלים ביניהם [עוד]

תגיות:

העברת מספר ארגומנטים דינמי לפונקציות Javascript

כאשר אנחנו כותבים פונקציה ב-Javascript או נראה דוגמא לכזו באינטרנט או בקוד אחר, נראה פונקציות עם מספר ארגומנטים קבוע.
אך מה נעשה במקרה כאשר מספר הארגומנטים שאנו רוצים להעביר לפונקציה יכול להשתנות? למשל, אם נרצה לכתוב פונקציה שמחברת מספרים זה יכול להיות נוח אם היא תוכל לתמוך ולקבל מספר משתנה של ארגומנטים במקום לרשום אותה שוב ושוב עם מספר ארגומנטים שונה בכל פעם.
מה שלא כולם יודעים זה שהארגומנטים של פונקציות ב-Javascript עובדים בצורה קצת שונה משפות אחרות.
למשל, לא חובה להעביר לפונקציה את כל הארגומנטים. אפשר להעביר לה רק חלק מהם והשאר יקבלו את הערך undefined.
כמו כן, ניתן לגשת אל הארגומטים גם בצורה של מערך ובאותו אופן ניתן להעביר לפונקציה יותר פרמטרים ממה שהיא מוגדרת לקבל. [עוד]

תגיות:

שגיאה בטעינת תמונה והחלפת התמונה באמצעות jQuery

לפעמים כאשר אני מוסיף אלמנט של תמונה (img) אני לא באמת יכול לדעת אם התמונה תיטען או לא. זה יכול לקרות ממספר סיבות, למשל, שימוש בתמונה שנמצאת בשרת אחר, תמונה שנטענת באמצעות web service שעלול להיות לא פעיל לעיתים או שיחזיר שגיאה.

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

הפעלת פונקציה/לחיצה על כפתור ב-ENTER באמצעות jQuery

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

תגיות: