首页 > 解决方案 > 元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“{}”

问题描述

我无法在打字稿中的对象中添加元素。



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)

标签: node.jsarraystypescriptlistobject

解决方案


您必须updateData像这样声明类型:

const updatedData: {
  [key: string]: string;
} = {};

推荐阅读