בכל פעם שנכנסת ל-codebase של חברה ישראלית שמגייסת frontend engineers, אחד הדברים הראשונים שמבדיל senior מ-junior הוא איך כותבים TypeScript ב-React. Junior כותב any כשנתקע, מוסיף // @ts-ignore כשה-types לא מסכימים, ומגדיר props כ-object כי "זה עובד". Senior כותב generic component שעובד עם כל data shape, discriminated union שמונע שגיאות בזמן קומפילציה, ו-polymorphic button שמקבל את כל attributes של HTML element.
הפרק הזה הוא הקפיצה שהופכת אתכם מ-"יודע TypeScript" ל-"כותב TypeScript ב-React כמו שצריך". זה מה שמופיע ב-codebases של Wix, monday.com, ו-Skai - ומה שמצפים ממך לדעת כשבאים לראיון.
הפתרון ל-"לא יודע מה הtype" הוא לא any. זה לא object. זה לא // @ts-ignore. הפתרון הוא להבין את הכלים הנכונים: generics, discriminated unions, utility types. כשמסתכלים על codebase בריא בחברה ישראלית, any מופיע פחות מ-5 פעמים בכל הcodebase. בcodebase בריא פחות - כמה מאות פעמים. ה-diff הזה משקף הבדל בניסיון ובהבנה, לא רק ב"העדפות קוד".