'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:

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

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][]).
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():
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 |


