קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
ראשי ♦ Typescript ♦ Ts loop through object properties

Ts loop through object properties

עידן יצחקי 10 באוקטובר 2022 אין תגובות

אם תנסו לרוץ על המפתחות של אוביקט ואז למשוך נתון על פי המפתח ב-typescript תקבלו שגיאה.

הסיבה הפשוטה היא שמדובר על בעיה ב-type, כאשר עושים לולאה כמו שמיד נראה אז מקבלים את ה-KEY כ-STRING.

אבל אנחנו ב-typescript , זה אומר שמבחינת הקומפיילר אין בעיה שזה string אבל זה יכול להיות רק מהסוג property של האוביקט.

כל עוד זה string מבחינתו זה יכול להיות כל דבר ולכן אנחנו צריכים "להרגיע" אותו.

מיד נראה איך נראה המצב הבעיתי ואיך לתקן אותו

.....

interface IHome {
  roof: string;
  door: string;
  windows: string;
}

 home: IHome = {
    roof: 'red',
    door: 'blue',
    windows: 'green'
 }

onHome() {
    for (let colorKey in this.home) {
      console.log(colorKey);
      console.log(this.home[colorKey]);

    }
}

יש לנו אינטרפייס, יש לנו השמה של HOME ויש לנו את הפונקציה שעושה לולאה על האוביקט HOME.

שורה 17 תדפיס את ה-KEY ובעקרון אם יש לי את המפתח אני אמור להיות יכול לקרוא לאוביקט ובסוגריים מרובעים למשוך ממנו את המאפיין הספציפי שאני רוצה, אבל כאן אנחנו נקבל שגיאה שנראת כך:

let colorKey: string
Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'IHome'.
  No index signature with a parameter of type 'string' was found on type 'IHome'.ts(7053)

אנחנו צריכים להבטיח לו שיכול להיות במשתנה הזה רק מידע מהסוג של האוביקט ונפתור את זה כך

 onHome() {
    let colorKey: keyof IHome;
    for (colorKey in this.home) {
      console.log(colorKey);
      console.log(this.home[colorKey]);
    }
  }

כך אנחנו מבטיחים שהמשתנה colorKey יכול להיות רק מהמאפיינים של IHome.

אם נניח ננסה לשנות בדרך את הערך שלו, נקבל שגיאה בגלל שזה כבר לא תואם את הסוג שהוגדר לו.

 onHome() {
    let colorKey: keyof IHome;
    for (colorKey in this.home) {
      console.log(colorKey);
      colorKey = colorKey + 'a';
      console.log(this.home[colorKey]);

    }
  }

תיהנו 🎃

פוסטים קשורים:

לימודי javascript - for loop offor loop of | איטרציה למערכים ב javascript. עם אינדקס מיניון מחזיק בננהangular input and output in the same variable תמונת אווירה של אותיות צבעוניותSEO| שינוי כותרת של הדף באנגולר chatChat – angular, nodejs and socket.io
TS typescript

אודות המחבר

עידן יצחקי להציג את כל הפוסטים של עידן יצחקי


« פוסט קודם
פוסט הבא »

השארת תגובה

ביטול

חיפוש באתר
בחירת העורכים
29 בדצמבר 2023 עידן יצחקי

שדה טקסט עשיר עם תמונות

אתם הולכים להיות מופתעים עד כמה HTML יכול להיות חכם ולבצע משהו כל כך מורכב, שאם אנחנו היינו רוצים ליצור

1 באוקטובר 2021 עידן יצחקי

איך למשוך דינמית favicon של אתרים אחרים ב-JS

בפוסט זה נראה איך אפשר על פי לינקים בדף למשוך את ה-favicon מהדומיין שלהם באופן דינמי, בדיקה של תקינות התמונה

פופולרי
Javascript functions – היכרות עם סוגי פונקציות
Javascript
21 בדצמבר 2024 אין תגובות
Nested routing in angular standalone component
Typescript
15 בנובמבר 2024 תגובה אחת
בחרו לפי תגיות
angular blockchain css ethers express front-end fullstack GQL html javascript next js nextjs nodejs react hooks reactjs solidity webgl אנגולר בלוקציין וורדפרס לימודי אנגולר לימודי וורדפרס לימוד ריאקט מדריך front-end מדריך GQL מדריך אנגולר מדריך וורדפרס מדריך חינם react מדריך ריאקט מפתח בלוק מפתח בלוקציין מתכנת front-end מתכנת בלוקציין מתכנת פרונט סולידיטי קורס front end קורס fullstack קורס nextjs קורס אנגולר קורס בלוקציין קורס בלוקציין בחינם קורס סולידיטי קורס ריאקט קורס תכנות קורס תכנות בחינם
סינון על פי קטגוריות
CSS fullstack HTML IIS Javascript nodeJs SEO Typescript אנגולר בלוקציין בניית אתרים וורדפרס חיפוש עבודה כלים נוספים כללי נגישות קורסים ריאקט תלת מימד תקלות ופתרונות
צור קשר
כל הזכויות שמורות לקודקודייל
ליצירת קשר: @ קודקודייל
גלילה לראש העמוד