Search code examples
typescriptobjectjavascript-objects

Typescript Objects


Please assist, am trying to transform an object to an instance of something. I have the following data as object from an API:

{
"0": {
    "0": {
        "1": 2
    },
    "1": {
        "1": 5
    },
    "2": {
        "1": 9
    },
    "3": {
        "1": 3
    },
    "4": {
        "1": 1
    }
},
"1": {
    "0": {
        "1": 7
    },
    "1": {
        "1": 6
    },
    "2": {
        "1": 10
    },
    "3": {
        "1": 8
    },
    "4": {
        "1": 4
    }
  }
}

my enums are as follows :

  export enum Enum3 {
    week1 = 0,
    ....
    week4
  }


   export enum Enum2 {
        day1 = 0,
        .....
        day10
   }

   export enum Enum1 {
        monday = 0,
        .....
        friday
   }

tried the following to declare but didn't work:

         // number is the number of racers entering the race
        let RaceDay: {[key: Enum1 ]: number };
        let Days: {[key: Enum2 ]: RaceDay[Key] };
        let Weeks: {[key: Enum3 ]:  Days[Key] };

        Weeks = ApiData; // data above.

How do i declare or instantiate such an object ? thank you.


Solution

  • You have a 3 times nested object structure:

    interface RaceDay {
      [key: string]: number
    }
    interface Days {
      [key: string]: RaceDay
    }
    interface Weeeks {
      [key: string]: Days
    }
    
    const data: Weeks = { } as Weeks; // your object with type of 'Object' as above
    

    assigning your object works for me. Hope that's helping.