繁体   English   中英

运算符&#39;&gt;&#39;不能应用于类型&#39;Iterable <string, Date> ”和“日期”

[英]Operator '>' cannot be applied to types 'Iterable<string, Date>' and 'Date'

我写这段代码来获取有关日期范围的总和,但是我面临着这个问题

运算符“>”不能应用于类型“可迭代”和“日期”。

这是我的代码

export function getTotalYearCosts(valueItem: ValueItem, allCosts: Map<string, Costs>): TotalCosts {
const totalYearCosts = { planned: 0, actual: 0 };
const test = allCosts.map(({created}) => created);

const Q1 = new Date('2018-01-01');
const Q2 = new Date('2018-04-01');
totalYearCosts.actual = valueItem.actualCostIds
  .map(costId => allCosts.get(costId, emptyCosts()).costs)
  .filter(costs => test > Q1 && test < Q2)
  .reduce((reduction, costs) => reduction + costs, 0);

totalYearCosts.planned = valueItem.plannedCostIds
  .map(costId => allCosts.get(costId, emptyCosts()).costs)
  .reduce((reduction, costs) => reduction + costs, 0);

  return totalYearCosts;
}

成本接口

export interface Costs {
  id: string;
  created: Date;
  costs: number;
 // costType: number;
  type: number;
  reference: string;
  comment: string;
}

我已经解决了。

export function getTotalYearCosts(valueItem: ValueItem, allCosts: Map<string, Costs>): ActualCosts {
const totalYearCosts = { actual: 0, planned: 0, Q1: 0, Q2: 0, Q3: 0, Q4: 0 };
  const iter = allCosts[Symbol.iterator]();

for (let i = 0; i < valueItem.actualCostIds.length; i++) {
  const costID = valueItem.actualCostIds[i];

  if (allCosts.get(costID).created.getMonth() < 3 && allCosts.get(costID).created.getMonth() >= 0 ) {

  totalYearCosts.actual += allCosts.get(costID).costs;
  totalYearCosts.Q1 += allCosts.get(costID).costs;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM