מודול 1 · המעבר — שיעור 1 מתוך 6

מה TypeScript נותן לכם בפועל

8 דקות קריאה

התחברו כדי שההתקדמות בקורס תישמר בחשבון.

שלוש טעויות ש-TypeScript תופס בשבילכם

// 1. שדה שלא קיים
const user = { name: "דנה", email: "[email protected]" };
console.log(user.phone);            // שגיאה: Property 'phone' does not exist

// 2. ארגומנט לא נכון
function sendEmail(to: string, subject: string) {}
sendEmail("[email protected]");      // שגיאה: Expected 2 arguments, but got 1

// 3. null שלא נבדק
function greet(user?: { name: string }) {
  return user.name;                 // שגיאה: 'user' is possibly 'undefined'
}

זה כל הערך, בגדול. TypeScript לא הופך את JavaScript לבטוח — הוא הופך טעויות ניסוחיות לבלתי אפשריות, ומשאיר לכם את הטעויות שבאמת דורשות מחשבה.

מה זה עולה

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

הטעות הראשונה של כל פרויקט TypeScript

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

  1. strict: true בקובץ הגדרות, והחרגה זמנית של מה שנשבר.
  2. קוד חדש נכתב בטיפוסים.
  3. כל שינוי בקוד ישן מוסיף טיפוס לאותו קובץ בלבד.
  4. any נחשב לחוב: כותבים אותו עם הערה ולמה, כדי שיהיה מה למחוק אחר כך.

שני כלים ששווה להכיר מהיום הראשון

npx tsc --noEmit          # בדיקה בלבד, בלי לפלוט כלום
npx tsc --noEmit --watch  # בזמן עבודה

--noEmit הוא הפקודה שחייבת לרוץ ב-CI. בלי זה הטיפוסים נבדקים רק אצל מי שפתח את העורך.

איך נראית הצלחה

לא "כתבתי TypeScript". אלא: tsc עובר על קוד שלא נכתב מאפס, בלי any חדשים, וכל פונקציה חדשה מתועדת בידי הטיפוסים שלה. אם שינית צורת נתונים ולא עדכנת את הצרכן — הבנייה נופלת, לא המשתמש.