ההבדל בין unknown ל-any ב-TypeScript כשהתחלתי ללמוד TypeScript, אחד הדברים שבלבלו אותי היה להבין את ההבדל בין unknown ל-any. הרי שניהם נראים כמו "type כללי", אז מה ההבדל הגדול ביניהם? האמת היא ש-unknown הוא כמו גרסה "בטוחה" יותר של any. הנה הסבר קצר וברור. אז קודם נתחיל עם any: זה כמו לומר ל-TypeScript: "עזוב אותי, אני יודע מה אני עושה." ברגע שמשתמשים ב-any, אפשר לקרוא ל-methods, לגשת ל-properties, או לעשות כל דבר אחר עם הערך – בלי ש-TypeScript יתלונן. זה יכול להיות מאוד גמיש ושימושי, אבל גם מסוכן, כי זה מבטל לחלוטין את הבדיקות של TypeScript, ולכן עלול לגרום לבעיות בזמן ריצה. השימוש ב-unknown: כאן TypeScript אומר לך: "אני לא יודע מה ה-type, אז תצטרך להוכיח לי." אם תנסו לגשת ל-method או לבצע פעולה על ערך מסוג unknown, אז TypeScript ידרוש מכם לבדוק קודם מה ה-type של הערך. זה מוסיף שכבת הגנה ומונע טעויות. אז למה לבחור ב-unknown? כי unknown מתאים למצבים שבהם אתם רוצים לשמור על גמישות אבל עדיין לשמור על בדיקות ה-types. זה פתרון מעולה כשאתם עובדים עם נתונים שמגיעים ממקורות חיצוניים (API, JSON וכו'), ואתם רוצים לוודא מה יש לכם לפני שאתם משתמשים בו. מתי לבחור ב-any? בתאכלס, תנסו כמה שפחות (אם בכלל) אבל רק כשאתם בטוחים לחלוטין מבחינת הקוד ואין לכם שום ברירה אחרת. any הוא כמו "סכין חדה" – שימושי אבל מסוכן.
סרטון מעולה וסופר חשוב ואגב אפשר להימנע משימוש בany באופן מוחלט גם בטייפים הקשים ביותר ע"י שימוש בnever במקום, איפה שצריך 🙌
אין ספק ש any זה מסוכן. מתחבר להסבר שלך 👏
הסבר מצויין, יש נטייה לחשוב ששימוש בany וunknown זה עצלנות או bad practice אבל במקרי קצה כאלה זה מאד שימושי
הסבר טוב ומובן. כל הכבוד. יצא לי לעבוד עם unknown ממש מעט כי לא ידעתי שיש כזה data type וכשגיליתי עליו גם אני, בדיוק כמוך חשבתי שזה כמו any.
חד כמו תמיד!
קראתי תודה Any and unknown the difference
Professional Speaker and Instructor on Software Development | Founder of Coding With Saar | Full-Stack Web Developer
3wלקורס TypeScript המלא שלי: https://www.codingwithsaar.co.il/courses/typescript-mastery