Home > Software design >  Value in Array is undefined TypeScript
Value in Array is undefined TypeScript

Time:03-28

Good morning everyone, I got an error in my foreach with an array:

function setRowData({ json }: NewType): void {
    // foreach key and value in json object
    // fill into an object
    // add object to array
    let tableRows: { id: string; key: string; de: string; it: string; }[] = [];
    Object.entries(json).forEach(([key, value]) => tableRows.push({
        id: key, key: key, de: value, it: (typeof value === 'string' ? value : "")
    }));
    setTableData(tableRows);
}

The error occurs on the line with the following content: id: key, key: key, de: value, it: (typeof value === 'string' ? value : "")

Does anyone know why the value variable called value inside my array is undefined?

In addition I post a photo of it and where the error occurs: enter image description here

This one is the description of the foreach, why is the second type in the array undefined? enter image description here

CodePudding user response:

When you use object entries unknown

The error is telling you that you cannot assign unknown to string.

In order to have it typed as string you must either specify it when using Object.entries():

typed as string

const entries = Object.entries<string>(json);

Or you should specify in your NewType that json is an object with only string as values (using typescript's Record: Record<string, string>)

  • Related