node.js - 元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“{}”
问题描述
我无法在打字稿中的对象中添加元素。
const bodyData = [
{
propName: "name",
value: "secondName",
},
{
propName: "surname",
value: "nothing",
},
];
const updatedData = {};
bodyData.forEach(({ propName, value }) => (updatedData[propName] = value));
console.log(updatedData);
元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“{}”。在“{}”类型上找不到带有“字符串”类型参数的索引签名。
14 bodyData.forEach(({ propName, value }) => (updatedData[propName] = value)); ~~~~~~~~~~~~~~~~~~~~~
在 createTSError (/home/mycomputer/MyTrailProjects/typescript-rest-shop/node_modules/ts-node/src/index.ts:513:12) 在 reportTSError (/home/mycomputer/MyTrailProjects/typescript-rest-shop/node_modules/ ts-node/src/index.ts:517:19) 在 getOutput (/home/mycomputer/MyTrailProjects/typescript-rest-shop/node_modules/ts-node/src/index.ts:752:36) 在 Object.compile (/home/mycomputer/MyTrailProjects/typescript-rest-shop/node_modules/ts-node/src/index.ts:968:32) 在 Module.m._compile (/home/mycomputer/MyTrailProjects/typescript-rest-shop/ node_modules/ts-node/src/index.ts:1056:42) 在 Module._extensions..js (internal/modules/cjs/loader.js:789:10) 在 Object.require.extensions.(匿名函数) [作为 .ts] (/home/mycomputer/MyTrailProjects/typescript-rest-shop/node_modules/ts-node/src/index.ts:1059:12) 在 Module.load (internal/modules/cjs/loader.js:653 :32) 在 tryModuleLoad (internal/modules/cjs/loader.js:593:12) 在 Function.Module._load (internal/modules/cjs/loader.js:585:3)
解决方案
您必须updateData
像这样声明类型:
const updatedData: {
[key: string]: string;
} = {};
推荐阅读
- pyspark - org.apache.spark.SparkException:由于数据块中的阶段失败,作业中止
- python - python中使用tic tac toe的Minimax算法
- android - 是否可以在 Android 上读取与第三方应用程序的 NFC 通信?
- flutter - 在 Flutter 应用的每个视图底部显示音乐播放器
- python - 在 for 循环的初始运行期间使用列表中的第二个值执行操作
- java - 如果我在 Spring Data JDBC 中使用没有 @Id 的实体类,我会遗漏什么吗?
- wordpress - 是否使用旧的购买主题进行网站开发?
- machine-learning - 在 Keras 中合并顺序模型
- webpack - 尝试在 Webpack 5 中使用 StockX API 失败
- javascript - 如何在 svelte 项目中配置 sass 和 ESLint?