在纯 JavaScript 中,我们可以迭代对象属性和值,如下所示:
const values = Object.keys(obj).map(key => obj[key]);
Run Code Online (Sandbox Code Playgroud)
在 TypeScript 中,此语法是错误的,因为 TS 编译器显示以下消息:
元素隐式具有“any”类型,因为“string”类型的表达式不能用于索引对象类型。
是否有其他方法不使用 Map<string, T> 来执行此操作并获取每个键的值?
我在使用 React 和 TS 构建应用程序时遇到了这个问题,并且我的状态有一个对象,我需要执行如下操作:
const stateJSX: HTMLParagraphElement[] = Object.keys(obj).map(key => <p>`${key}: ${obj[key]}`<p>);
Run Code Online (Sandbox Code Playgroud)