我正在通过构建一个节点应用程序来学习Typescript。我正在通过sequelize使用MySQL作为数据库。我想在从数据库中得到的结果中使用.reduce()
方法。
下面是我的代码:
const orderedInstances = await createOrderedItemClass.findAll({where: {cartId:
cart.dataValues.id}});
orderedInstances.reduce((prev, current)=>{
return prev.dataValues.food_total_sum as number + current.dataValues.food_total_sum as
number
},)
下面是我在typescript
中的错误:
Argument of type '(prev: createOrderedItemClass, current: createOrderedItemClass) => number'
is not assignable to parameter of type '(previousValue: createOrderedItemClass, currentValue:
createOrderedItemClass, currentIndex: number, array: createOrderedItemClass[]) =>
createOrderedItemClass'.
Type 'number' is not assignable to type 'createOrderedItemClass'.
我该怎么解决这个问题?
1条答案
按热度按时间flvlnr441#
Reduce的工作方式不同,它不是prev和current值,而更像是accumulator和current值,所以迭代的结果存储在第一个参数中,在你的例子中是'prev'。迭代的结果是一个数字。你试图访问dataValues.food_sum,但这是一个错误。
试着这样做: