首页 > 解决方案 > 在 TypeScript 中迭代对象的键和值

问题描述

在纯 JavaScript 中,我们可以像这样迭代对象的 props 和值:

const values = Object.keys(obj).map(key => obj[key]);

在 TypeScript 中,此语法是错误的,因为 TS 编译器显示以下消息:

“元素隐式具有‘任何’类型,因为‘字符串’类型的表达式不能用于索引对象类型”。

是否有另一种方法不使用 Map<string, T> 来执行此操作并获取每个键的值?我在使用 React 和 TS 构建应用程序时遇到了这个问题,并且在我的状态下我有一个对象,我需要执行以下操作:

const stateJSX: HTMLParagraphElement[] = Object.keys(obj).map(key => <p>`${key}: ${obj[key]}`<p>);

我想看看其他人的方法和想法:) 谢谢。

标签: javascripttypescriptiteration

解决方案


用于Object.entries迭代键和值:

Object.entries(obj).map(([key, value]) => `${key}: ${value}`)

推荐阅读