'Value in Array is undefined TypeScript

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



Solution 1:[1]

When you use Object.entries() you extract an array of key-value tuples.

In this case the problem is that typescript cannot infer the type of values in the object, so it types it as unknown ([string, unknown][]).

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>)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Sandro Maglione