שיעורי מודול (2/2)
הצהרות ומיזוג
קבצי הצהרת סוג (עם סיומת .d.ts) משמשים ב-TypeScript כדי לתאר את הצורה של קוד JavaScript קיים מבלי ליישם שום היגיון ממשי. הם מכילים רק הגדרות סוגים, ממשקים וחתימות פונקציות.
קבצים אלו חיוניים בעת שימוש בספריות של צד שלישי הכתובות ב-JavaScript טהור.
מיזוג הכרזה
מיזוג הצהרות הוא התנהגות שבה המהדר ממזג שתי הצהרות נפרדות או יותר המוצהרות באותו שם להגדרה אחת.
המקרה הנפוץ ביותר הוא מיזוג ממשק:
interface User {
name: string;
}
interface User {
age: number;
}
// The resulting User interface has both name and age properties!
const student: User = {
name: 'Alice',
age: 23,
};אם מאפיינים חולקים את אותו שם, הם חייבים להיות מאותו סוג, אחרת TypeScript ידווח על שגיאה.
שינוי מודולים גלובליים וחיצוניים
אנו יכולים להשתמש במיזוג הצהרות כדי להרחיב ממשקים המוגדרים במודולים אחרים או בהיקף הגלובלי.
לדוגמה, אם ברצוננו להוסיף מאפיין לאובייקט הגלובלי window של הדפדפן:
declare global {
interface Window {
analyticsToken: string;
}
}על ידי שימוש ב-declare global, אנו אומרים ל-TypeScript שאנו מחדירים חתימה חדשה לממשק הגלובלי Window הקיים.
נסה זאת בעצמך
תרגיל 1: מיזוג הצהרות בסיסי
ב-TypeScript, ממשקים בעלי אותו שם באותו היקף מתמזגים אוטומטית. הכריז על ממשק משתמש עם שם מאפיין: מחרוזת, ואז בבלוק שני הכריז על אותו ממשק משתמש מוסיף את המאפיין age: number. לבסוף, הכריז על משתמש קבוע מסוג User עם ערכים מתאימים.
הצג רמז
הכרזה על ממשק משתמש פעמיים, הוספת המאפיינים המתאימים ולאחר מכן הקצה את השדות לאובייקט המשתמש.
הפתרון זמין לאחר 3 ניסיונות
תרגיל 2: הרחבת ממשק החלון הגלובלי
תאר לעצמך שאתה רוצה להרחיב את ממשק Window העולמי כדי להוסיף מאפיין מותאם אישית בשם config מסוג Record<string, string>. כתוב את ההצהרה הנכונה באמצעות declare global כדי למזג את המאפיין החדש לממשק הגלובלי של Window.
הצג רמז
השתמש ב-declare global { interface Window { config: Record<string, string>; } }.
הפתרון זמין לאחר 3 ניסיונות