TypeScript - איך אני משתמש בקובץ next-env.d.ts ב-Next.js?
שמתי לב לקובץ בשם next-env.d.ts בפרויקט Next.js שלי ב-TypeScript. רציתי להכריז על כמה enum-ים שאני יכול להשתמש בהם בכל קבצי Next.js שלי. איך אני עושה את זה ואז ניגש לאותם enum-ים בכל הפרויקט שלי?
תשובה #1
קובץ next-env.d.ts מוסבר כאן: https://nextjs.org/docs/basic-features/typescript
קובץ בשם next-env.d.ts יוּצָר בשורש הפרויקט שלך. קובץ זה מבטיח שהטיפוסים של Next.js יזוהו על ידי המהדר TypeScript. אינך יכול להסיר אותו, אך אתה יכול לערוך אותו (אך אין צורך בכך).
למטרת מה שאתה מנסה להשיג עם ה- enums, אתה יכול לייצא את ה-enum שלך כמודול ES רגיל, כך שתוכל לייבא אותו בכל פעם שתרצה בקוד שלך.
מקווה שזה עוזר.
תשובה #2
נכון ל-Next 11, ההמלצה עבור הקובץ next-env.d.ts השתנתה, כיוון שהוא כעת נוצר מחדש בכל בנייה.
אתה לא צריך לערוך אותו, אלא ליצור קובץ חדש עבור הסוגים שלך ולהוסיף אותו ל-include ב-tsconfig.json שלך.
אבל עבור אנומים אתה לא צריך שום דבר מזה, פשוט הכריז אותם בקובץ .ts רגיל וייבא אותם כרגיל.
מקור (למסמך ישן, הערה הבאה ככל הנראה הוסרה מהמסמכים מ-v13.4.5): https://github.com/vercel/next.js/blob/v13.4.4/docs/basic-features/typescript.md#existing-projects :
קובץ בשם next-env.d.ts ייווצר בשורש הפרויקט שלך. קובץ זה מבטיח שהסוגים של Next.js יזוהו על ידי הקומפיילר של TypeScript. אין להסיר או לערוך אותו מכיוון שהוא יכול להשתנות בכל רגע. אין להתחייב לקובץ זה ויש להתעלם ממנו על ידי בקרת גרסאות (לדוגמה בתוך קובץ .gitignore שלך).
במקום לערוך את next-env.d.ts, אתה יכול לכלול סוגים נוספים על ידי הוספת קובץ חדש לדוגמה additional.d.ts ואז להתייחס אליו במערך include בקובץ tsconfig.json שלך.
ראה גם: https://github.com/vercel/next.js/issues/26533