打字稿错误:Object.fromEntries打字稿错误

时间:2020-06-04 18:28:49

标签: angular typescript object

我在打字稿中有一个函数,该函数使用Object.fromEntries来减少复杂的响应对象并使用子对象键的子字符串将其分组。

let Newresult = res.map(object => Object.fromEntries(Object.entries(object).map(([key, value]) => [
key,
value.map(valueobject => Object.entries(valueobject).reduce((res1, [name, value]) => {
    const key = name.slice(0, 5);
    res1[key] = res1[key] || {};
    res[key][name] = value;
    return res1;
}, {}))
])));

但是问题是打字稿在编译时抛出错误。

error TS2339: Property 'fromEntries' does not exist on type 'ObjectConstructor'.
error TS2339: Property 'map' does not exist on type '{}'.

我尝试将ESNext,ES2017.Object添加到我的tsconfig.json库数组中,但仍会引发编译错误。 但是对我的lib数组进行的相同更新允许我使用Object.entries。

我正在使用angular -v-6,打字稿:〜3.1.1

哪种其他方法可以帮助我达到与上述相同的结果。 有人可以指引我正确的方向吗?

提前谢谢!

2 个答案:

答案 0 :(得分:4)

Object.fromEntriesES2019,因此您的lib选项需要包含该内容(或ES2020)。 (ESNext是移动目标。)

也就是说,TypeScript v3.1.1相当老。您可能需要升级。

答案 1 :(得分:1)

  • TypeScript版本为3.9

打开tsconfig.json

添加

"target": "esnext",
"lib": ["esnext", "dom"]