PracticU

יבוא ויצוא Module ב-TypeScript

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

יבוא ויצוא Module ב-TypeScript
מודולים הגיעו ל-JavaScript בגרסת ECMAScript 6 בשנת 2015. בהרצאה רואים איך כל קובץ הופך למודול סגור, איך חושפים ממנו חלקים ואיך מייבאים אותם בקובץ אחר.
השלבים העיקריים
1. הגדרת מודול ב-tsconfig: עם ECMAScript 5 אי אפשר לעבוד עם מודולים. אפשר לעבור ל-ECMAScript 6 או להשאיר את היעד וגם לבחור מערכת מודולים כמו CommonJS או AMD. בהרצאה מקווים שזה יעבוד עם הגדרה כזאת.
2. כל קובץ הוא מודול: בקובץ test.ts מוגדרים משתנים a ו-b, פונקציות f1 ו-f2 ומחלקה Tester. כל מה שבו נגיש רק בתוכו.
3. export: המילה export חושפת את b, את f2 ואת Tester מחוץ לקובץ.
4. import: בקובץ אחר כותבים import עם סוגריים מסולסלים, שם החברים, ואחריהם הנתיב לקובץ ./test.js באותה תיקייה. אחר כך אפשר להציג את b, לקרוא ל-f2 וליצור new Tester.
5. type="module": בלי ההגדרה הזו בתג הסקריפט בדף מתקבלת השגיאה "cannot use import statement outside a module".
6. שימוש פנימי: f2 יכולה לקרוא ל-f1 ולהשתמש ב-a. מבחוץ אי אפשר לגשת ל-a, כי אין לו export.
7. export default: מאפשר לייצא פריט אחד, למשל Tester2, ואז מייבאים אותו בלי סוגריים מסולסלים. חברים שיוצאו בלי default חייבים להיכתב בתוך סוגריים. אפשר לכתוב export default ישירות בהגדרת המחלקה או אחריה.
8. מחלקה בקובץ משלה: למחלקה Cat בקובץ cat.ts כותבים export default, ואז import Cat from הקובץ. התבנית הזו נפוצה ב-React, באנגולר וב-Node.js.
שימו לב
בדוגמה ההרצאה הייבוא עבד עם סיומת .js או .ts בנתיב. הרצאה מציינת שב-React ובאנגולר זה לא נדרש.
עכשיו אפשר לפצל קוד לקבצים, לחשוף ממנו רק את הנחוץ ולייבא אותו היכן שצריך.
השיעור הבא בקורס: פרויקט גמר בקורס TypeScript

פרקי ההרצאה: יבוא ויצוא Module ב-TypeScript

  1. 00:00

    מודולים ב-ECMAScript 6 והגדרת module

  2. 01:02

    כל קובץ כמודול נפרד

  3. 02:08

    חשיפה החוצה עם export

  4. 03:12

    ייבוא הפריטים עם import

  5. 03:48

    שימוש במשתנה, בפונקציה ובמחלקה

  6. 04:26

    הגדרת הסקריפט הראשי כ-type module

תמלול ההרצאה: יבוא ויצוא Module ב-TypeScript

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

  1. 00:02

    בגרסת JavaScript אקמה סקריפט 6 הוסיפו קונספט של מודולים זה היה ב-2015 בואו נראה איך אפשר לעבוד עם מודולים בטייפ סקריפט דבר ראשון אנחנו הגדרנו שאנחנו אקמה סקריפט 5 כבר אנחנו לא יכולים לעבוד עם מודולים אז או שאנחנו מעבירים לאקמה סקריפט 6 בכדי לעבוד עם מודולים או שמשאירים אקמה סקריפט 5 ואפשר להגדיר

  2. 00:31

    מודול ולתת לו אחד מסדרת אפשרויות לדמות מודול כמו כל מיני ספריות common js או amd או להגדיר כאן אקמאסקריפט 6 אבל זה פחות הגיוני כי אם האתר שלנו הוא אקמאסקריפט 5 אז קשה לי לדעת מה הם יעשו בשביל לתמוך במודול אז נשאיר את זה כרגע בצורה כזאת, אני מקווה שזה יעבוד כמו שצריך, נסגור את זה ובואו נייצר לעצמנו מחלקה סתם

  3. 01:02

    בשביל לבדוק מה זה אומר מודול נקרא לה test.ts והרעיון זה שכל קובץ טייפסקריפט או ג'אווה סקריפט במקרה שלנו זה הולך להיות טייפסקריפט נחשב מודול נפרד וסגור ואנחנו יכולים לכתוב בו מה שאנחנו רוצים אנחנו יכולים לבנות בו משתנים בואו נבנה פה משתנה a ונבנה פה משתנה b ונבנה פה פונקציה F1 שנעשה בה איזשהו אלרט F1 ונבנה כאן את F2

  4. 01:41

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

  5. 02:18

    את f2 על ידי אקספורט ובואו נבנה איזה שהיא פלאס אולי נקרא לה טסטר ונחשוף את טסטר על ידי אקספורט בצורה כזאת עכשיו עכשיו אנחנו רוצים להשתמש עם כל מה שחשפנו החוצה מחוץ לקובץ.

  6. 02:41

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

  7. 03:03

    אז נקודה, זאת התיקייה הנוכחית, והקובץ יהיה test.js הוא הולך להיות קובץ באותו המקום שלי. עכשיו, מה אני בדיוק רוצה לשלוף החוצה מהקובץ הזה?

  8. 03:21

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

  9. 03:39

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

  10. 04:06

    בואו נגדיר פה איזה public display, נעשה alert I'm tester בצורה כזאת וניצור פה אובייקט מ-const tester שווה new tester ונקרא ל-tester.display אז בואו נראה רגע מה אנחנו צריכים לעשות בשביל שהוא יריץ את זה, יש לנו פה עדיין שגיאה, בואו נראה רגע מה השגיאה, הוא אומר לי cannot use import statement outside

  11. 04:46

    Inside of a module, אוקיי, הוא מתחיל לראות שאני משתמש באימפורט ואקספורט, אבל הוא אומר, תשמע, זה עדיין לא באמת מודול. למה? כי בשביל לעבוד עם מודולים אנחנו צריכים להגדיר פעם אחת כאן במיין שהמיין הוא גם כן מודול וצריך להתייחס אליו בתור מודול.

  12. 05:06

    זה מתבצע על ידי type = module.

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

ההרצאה הקודמת: יצירת enum ב-TypeScript

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

  • יבוא ויצוא של מסד נתונים
  • יבוא ויצוא של מכונה ווירטואלית
  • Typescript
  • COPY MODULE

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

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