שלוש טעויות ש-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 בכל מקום ובאפס ערך. הסדר שעובד:
strict: trueבקובץ הגדרות, והחרגה זמנית של מה שנשבר.- קוד חדש נכתב בטיפוסים.
- כל שינוי בקוד ישן מוסיף טיפוס לאותו קובץ בלבד.
anyנחשב לחוב: כותבים אותו עם הערה ולמה, כדי שיהיה מה למחוק אחר כך.
שני כלים ששווה להכיר מהיום הראשון
npx tsc --noEmit # בדיקה בלבד, בלי לפלוט כלום
npx tsc --noEmit --watch # בזמן עבודה
--noEmit הוא הפקודה שחייבת לרוץ ב-CI. בלי זה הטיפוסים נבדקים רק אצל מי שפתח את העורך.
איך נראית הצלחה
לא "כתבתי TypeScript". אלא: tsc עובר על קוד שלא נכתב מאפס, בלי any חדשים, וכל פונקציה חדשה מתועדת בידי הטיפוסים שלה. אם שינית צורת נתונים ולא עדכנת את הצרכן — הבנייה נופלת, לא המשתמש.