我在打字稿中有一个函数,该函数使用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
哪种其他方法可以帮助我达到与上述相同的结果。 有人可以指引我正确的方向吗?
提前谢谢!
答案 0 :(得分:4)
Object.fromEntries
为ES2019,因此您的lib
选项需要包含该内容(或ES2020)。 (ESNext是移动目标。)
也就是说,TypeScript v3.1.1相当老。您可能需要升级。
答案 1 :(得分:1)
打开tsconfig.json
添加
"target": "esnext",
"lib": ["esnext", "dom"]