【问题标题】:reduce typescript on a databse entity [closed]减少数据库实体上的打字稿[关闭]
【发布时间】:2021-03-05 05:00:19
【问题描述】:

我有一个 Food 实体,它有一个价格列

在项目的某个地方,我有一系列食物,我想使用reduce() 方法提取它们的价格总和,以使代码更紧凑。但是,我收到错误消息:每个元素的Type 'number' is not assignable to type 'Food'The expected type comes from the return type of this signature 是reduce 函数。当我使用 for 循环时这不是问题,但我想使用 reduce 方法使代码更易于阅读。

有没有办法解决这个问题?

【问题讨论】:

  • 也许您忘记输入 reduce 的初始值(第二个参数)。如果您分享代码最小可重现示例并在您遇到错误的地方提出问题,我会尽力提供帮助
  • @captain-yossarian typescript const totalAmount = foods.reduce((food1,food2)=>food1.price+food2.price) 错误发生在 food1.price 和 food2.price
  • 我也可以先使用地图,然后再减少地图价格,但我想知道有没有办法通过一个减少来完成所有这些操作

标签: typescript reduce


【解决方案1】:

首先,提问总是好的。 没有错题。

这是一段可能对您有所帮助的代码。

type Food = {
    price: number
}
const foods = [
    { price: 10 },
    { price: 20 }
]
const totalAmount = foods.reduce((food1, food2) => {
    return {
        price: food1.price + food2.price
    }
}, { price: 0 })
totalAmount // {price: 30}

您忘记定义reduce 函数的第二个参数。 你也可以只返回数字:

type Food = {
    price: number
}
const foods = [
    { price: 10 },
    { price: 20 }
]
const totalAmount = foods.reduce((total, food) => total + food.price, 0)

另外,我认为您不应该删除您的问题。它可能会帮助其他人。这就是stackoverflow如此受欢迎的原因

【讨论】:

    猜你喜欢
    • 2017-09-22
    • 2017-06-22
    • 2018-05-23
    • 1970-01-01
    • 2018-10-06
    • 2011-08-19
    • 2018-05-06
    • 1970-01-01
    • 2013-03-23
    相关资源
    最近更新 更多