
Drawable עם פונקציה draw. בניגוד לשפות אחרות, interface ב-TypeScript יכול להצהיר גם על משתנה, כמו char מסוג string.implements Drawable אחרי extends Shape, ללא פסיק בין השניים. ה-interface לא קיים ב-JavaScript שנוצר, והקומפיילר הוא זה שבודק שהמחלקה מממשת את כל מה שהוגדר.char ואת draw.Rectangle לולאה על הגובה ולולאה פנימית על הרוחב מדפיסות את התו עם רווח, ושורה חדשה בסוף כל שורה. ההרצאה מתעלמת מ-x ומ-y. עם רוחב 50 וגובה 10 מתקבל מלבן סביר.char? ב-interface אומר שאין חובה לממש אותו. ובכל זאת המחלקה צריכה להגדיר ערך כדי שהקוד יעבוד, ובדוגמה הוגדר #. גם פונקציה יכולה להיות אופציונלית, ואילו draw נשאר חובה.הטקסט המלא של הדקות הראשונות בהרצאה «יצירת interface ב-TypeScript» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו עוברים ליצירה של אינטרפייס. בג'אווה סקריפט אין לנו אינטרפייס, אין לנו שום יכולת לייצר אינטרפייס, כלומר אינטרפייס נייטיב של השפה, כי זה פשוט לא קיים שם גם בתחביר האובג'קט אוריינטד.
בטייפ סקריפט יש לנו אינטרפייס. אז אנחנו ניגשים ובונים קובץ, בואו נקרא לאינטרפייס הזה דרורבל TS. היכולת לצייר משהו. אינטרפייס דרורבל ויש לו פונקציה.
אחת שנקראת draw בצורה כזאת בואו אפילו נבנה משהו שבשפות אחרות אי אפשר לבנות וזה משתנים כלומר לא באמת משתנה אלא הצהרה על משתנה בטייפ סקריפט אינטרפייס יכול להכיל הצהרות על פונקציות אבל גם הצהרות על משתנים אז בואו נדפיס איזשהו char שהוא string ועם איזה tab אנחנו רוצים לבצע את ה-draw של הצורה.
בואו נניח שזה בעצם ה-interface שלנו. ובואו ניקח את ה-interface הזה ונממש אותו רק במחלקה של הרקטנגל סתם בשביל הכיף. אז יש לנו פה extends shape פסיק, אפילו לא פסיק, בלי פסיק, Implements Drawable ושימו לב שאנחנו לא צריכים להגדיר את האינטרפייס כאן מפני שבג'אווה סקריפ נייטיב
אין דבר כזה אינטרפייס, זה משהו שרק הקומפיילר בודק ואומר תקשיב אם אתה מימשת פה את האינטרפייס אתה צריך לכתוב ולממש את התוכן שלו, בוא נלך לבלון Implement Interface Drawable והוא זורק לי את שני החבר'ה האלה, הוא אומר לי אתה צריך שיהיה לך משתנה שנקראת char, האינטרפייס לא מגדיר את המשתנה, הוא רק
מצהיר שאני צריך שיהיה לי את המשתנה הזה, ופונקציית draw שאני אהפוך אותה פה לpublic למרות שהיא גם ככה public, והיא תבצע לי ציור על המסך של הצורה. אני רק אקח את ה-char הזה, אשים אותו פה למעלה, ואת ה-draw, בואו נעביר את ה-draw פה למטה שיהיה כזה קצת יותר סדר.
זה היה get area, ובואו נניח שפה אני מבצע ציור. אז איך אנחנו בעצם מציירים מלבן? אז בואו נצייר אותו רגע, פה אני גם אגדיר public שיהיה יותר מסודר.
איך נצייר מלבן? בואו נגיד שהצ'אר שלו זה כוכבית כרגע, ואנחנו רוצים לרוץ קודם כל על הגובה. בואו נצייר אותו בכוכביות כזה, נרוץ i שווה 1, i קטן שווה this.height i++ בואו נצייר את השורות, j מתחיל מ-1, j קטן שווה this.width ו-j++ בוא תעשה לי דוקיומנט רייט של this.char ועם איזשהו רווח
ובוא תראה פה שורה דוקומנט רייט בר אני כרגע מתעלם מהx והy אני פשוט מצייר צורה בלי קשר לx וy אלא רק with the height דוקומנט רייט בוא נעשה פה אפילו איזה קו ויש לנו עכשיו מימוש של draw שהגיע מהאינטרפייס הזה כולל המשתנה שנמצא פה.