לפני שאתם הולכים ל-AI חכם תשתמשו בכלים קיימים :)
-
@yossiz כתב בלפני שאתם הולכים ל-AI חכם תשתמשו בכלים קיימים :
בכל מקרה אם יש שאלות, אפשר לשאול על גבי הפורום, אני לא מבטיח כלום, אבל כתומך נלהב של טייפסקריפט יש סיכוי גדול שהשאלה יעניין אותי, ולפחות אעיף מבט...
קיבלתי.
ואגב אי אפשר למעט מכבודי... - הוא פשוט כבר ככה הכי נמוך.אנסה לפרוס את שאלותיי כאן על גבי הפורום, מקווה שאצליח כן להסביר אותם כשהם אחת אחת ומכוונות יותר לדוגמא מעשית.
-
אני מצטרף להמלצה של @yossiz
אבל מסתייג מהמשפט הזה:@yossiz כתב בלפני שאתם הולכים ל-AI חכם תשתמשו בכלים קיימים :
אני יכול להבטיח עם הרבה ביטחון שמי שיתחיל לכתוב טייפסקריפט לא יתחרט ויראה הרבה תועלת
למרות שהוא יראה הרבה תועלת, הוא יתחרט אלף פעמים בין תועלת לתועלת.
אני גם כמעט לא יכול היום לכתוב בונילה JS, ועם כל זה, ההתממשקות של TS עם חבילות NPM רחוק מלהיות מושלם, יש המון בעיות בדרך
אבל כאמור, התועלת רבה על הנזק, וזה שווה לדעתי העניה. -
למרות שהוא יראה הרבה תועלת, הוא יתחרט אלף פעמים בין תועלת לתועלת.
עוד לא נתקלתי בבעיות. אולי כי בינתיים השתמשתי רק בספרייות מפורסמות
@yossiz כתב בלפני שאתם הולכים ל-AI חכם תשתמשו בכלים קיימים :
הוא יתחרט אלף פעמים בין תועלת לתועלת
זה לא מובן לי. מתי שאתה רוצה אתה יכול לכתוב JS נקי (ע"י פתח המילוט של
any
) ועדיין לקבל את התועלת לגבי שאר הקוד. לא מבין מה שייך כאן חרטה על המעשים הטובים של העבר -
@yossiz כתב בלפני שאתם הולכים ל-AI חכם תשתמשו בכלים קיימים :
זה לא מובן לי. מתי שאתה רוצה אתה יכול לכתוב JS נקי (ע"י פתח המילוט של any) ועדיין לקבל את התועלת לגבי שאר הקוד. לא מבין מה שייך כאן חרטה על המעשים הטובים של העבר
אני כבר לא זוכר במדויק, מדובר על תסכולים מצטברים של למעלה משלש שנים...
אבל יש דוגמא אחת שנתקלתי בה לאחרונה. חבילת NPM שמתפקדת כמודל ES2020, ואי אפשר לעשות לה require, אני מנסה לשלב אותה בפרוייקט שעובד עם מודל commonjs, אז הקומפיילר החכם של TS מקמפל את כל ה import ל require, והייבוא של החבילה הנ"ל נכשל, ומאידך אם אני משדרג את כל הפרוייקט למודל ES2020 הרבה חבילות אחרות יישברו, ולך תתמודד עם פרויקט מנופח של עשרות חבילות..
לא מצאתי פיתרון לבעיה הזו כי בסוף התייתר הצורך בחבילה הזו, אבל זו דוגמא לתסכול מתמשך שאופייני לצורת העבודה של TS, TS זה לא אמיתי, זה זיוף שמנסה לחקות שפה טיפוסית קשוחה, וזה אמור איכשהו להתלבש על מודלים וחבילות שנכתבו לא בצורה מותאמת מראש, וזה פתח לבעיות.
לעומת נוד, אנגולר עובד מדהים עם TS, לא נתקלתי כמעט בבעיות שם, בגלל שזה נכתב מראש בצורה הנכונה מותאם לעבודה עם TS. -
@יוסף-בן-שמעון כתב בלפני שאתם הולכים ל-AI חכם תשתמשו בכלים קיימים :
אבל יש דוגמא אחת שנתקלתי בה לאחרונה. חבילת NPM שמתפקדת כמודל ES2020, ואי אפשר לעשות לה require, אני מנסה לשלב אותה בפרוייקט שעובד עם מודל commonjs, אז הקומפיילר החכם של TS מקמפל את כל ה import ל require, והייבוא של החבילה הנ"ל נכשל, ומאידך אם אני משדרג את כל הפרוייקט למודל ES2020 הרבה חבילות אחרות יישברו, ולך תתמודד עם פרויקט מנופח של עשרות חבילות..
למה זה בעיה של TS? זה לא בעיה כללית של node שאי אפשר להשתמש בחבילות commonjs ו-esm ביחד (ודאי לא לעשות import מתוך פרויקט שאינו esm - כלומר לא מוגדר
"type": "module"
בpackage.json
)? -
@צדיק-תמים יש דרכים להתמודד עם שילוב כזה ב JS, הבעיה ב TS שהיא בכלל לא נותנת לך אופציה להתמודד עם זה כי היא מקמפלת import ל require בלי לשאול אותך
-
עוד בעיה שאני זוכר, אני עובד עם סקוולייז TS, וזה לכאורה אמור להיות שילוב מנצח, אבל בפועל אני מוצא את עצמי המון פעמים משתמש ב @ts-ignore בבניית שאילתות, כי ה type שבנו לסקוולייז לא מספיק חכם להתמודד עם כל מיני שילובים.
אולי זה פתיר, אבל הזמן שיקח לי לעבוד על כל דבר כזה כדי לפתור אותו, לא מצדיק את ההשקעה. אז אני מצד אחד נהנה מהטיפוסיות, אבל מצד שני אני לא יכול להיות רגוע שהקומפיילר יתקן אותי על שגיאות, כי אולי זה ברשימת ההתעלמות. -
@יוסף-בן-שמעון כתב בלפני שאתם הולכים ל-AI חכם תשתמשו בכלים קיימים :
@צדיק-תמים יש דרכים להתמודד עם שילוב כזה ב JS
מהן הדרכים להתמודד בJS?
הבעיה ב TS שהיא בכלל לא נותנת לך אופציה להתמודד עם זה כי היא מקמפלת import ל require בלי לשאול אותך
https://github.com/microsoft/TypeScript/issues/43329
אם אני מבין נכון,"moduleResolution": "Node16
אמור לפתור את הבעיה, לא?
ראה גם https://www.npmjs.com/package/@brillout/import -
פוסט זה נמחק!
-
@יוסף-בן-שמעון כתב בלפני שאתם הולכים ל-AI חכם תשתמשו בכלים קיימים :
אבל יש דוגמא אחת שנתקלתי בה לאחרונה. חבילת NPM שמתפקדת כמודל ES2020, ואי אפשר לעשות לה require, אני מנסה לשלב אותה בפרוייקט שעובד עם מודל commonjs, אז הקומפיילר החכם של TS מקמפל את כל ה import ל require, והייבוא של החבילה הנ"ל נכשל, ומאידך אם אני משדרג את כל הפרוייקט למודל ES2020 הרבה חבילות אחרות יישברו, ולך תתמודד עם פרויקט מנופח של עשרות חבילות..
גם אני נתקלתי, גם ב-JS וגם ב-TS, לא חשבתי שהבעיה קיימת יותר ב-TS מאשר ב-JS
בפרוייקט האחרון שלי הפכתי את כל הפרוייקט שלי ל-ESM בגלל זה
(require עדיין אמור לעבוד)
יש לי קומיט ברפו שלי עם הכותרת:
Make sindresorhus happy and convert to ESMהאיש הזה יש לו יותר מאלף חבילות NPM, מהם יש מפורסמות מאוד, והוא מתעקש שכולם יהיה ESM בלבד