数组中的值未定义 TypeScript
Value in Array is undefined TypeScript
我在使用数组的 foreach 中遇到错误:
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);
}
错误发生在以下内容的行上:id: key, key: key, de: value, it: (typeof value === 'string' ? value : "")
有谁知道为什么我的数组中名为 value
的 value
变量未定义?
另外我post拍了一张照片和错误的地方:
这是foreach的说明,为什么数组中的第二个类型是undefined?
当您使用 Object.entries() 时,您会提取一个包含 key-value 个元组的数组。
在这种情况下,问题是打字稿无法推断对象中值的类型,因此它将其类型化为 unknown
([string, unknown][]
).
错误提示您不能将 unknown
分配给 string
。
为了将其输入为 string
,您必须在使用 Object.entries()
时指定它:
const entries = Object.entries<string>(json);
或者您应该在 NewType
中指定 json 是一个只有 string
作为值的对象(使用 typescript 的 Record
: Record<string, string>
)
我在使用数组的 foreach 中遇到错误:
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);
}
错误发生在以下内容的行上:id: key, key: key, de: value, it: (typeof value === 'string' ? value : "")
有谁知道为什么我的数组中名为 value
的 value
变量未定义?
另外我post拍了一张照片和错误的地方:
这是foreach的说明,为什么数组中的第二个类型是undefined?
当您使用 Object.entries() 时,您会提取一个包含 key-value 个元组的数组。
在这种情况下,问题是打字稿无法推断对象中值的类型,因此它将其类型化为 unknown
([string, unknown][]
).
错误提示您不能将 unknown
分配给 string
。
为了将其输入为 string
,您必须在使用 Object.entries()
时指定它:
const entries = Object.entries<string>(json);
或者您应该在 NewType
中指定 json 是一个只有 string
作为值的对象(使用 typescript 的 Record
: Record<string, string>
)