Оператор '>' нельзя применять к типам 'Iterable <string, Date>' и 'Date'

Я пишу этот код, чтобы получить сумму о диапазоне дат, но я столкнулся с этой проблемой

Operator '>' cannot be applied to types 'Iterable' 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;
}
allCosts.map(({created}) => created); не возвращает Date, и ошибка говорит вам, что вы не можете сравнить дату с чем-то еще с оператором >
bugs 02.05.2018 12:06

Что вы предлагаете мне сделать в этом случае, чтобы сравнить дату и суммировать затраты по диапазону дат?

Abedin.Zhuniqi 02.05.2018 12:08

Что вы ожидаете от test ?

bugs 02.05.2018 12:08

У меня есть затраты, такие как объект интерфейса, и затраты имеют дату, когда были созданы. Я просто хочу, чтобы, если затраты (тест) больше этого Q1 и меньше Q2, уменьшите эту функцию + затраты. Я обновлю код, чтобы увидеть интерфейс затрат

Abedin.Zhuniqi 02.05.2018 12:11

@bugs Вы можете мне в этом помочь?

Abedin.Zhuniqi 02.05.2018 12:44
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
387
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я исправил это.

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;

Другие вопросы по теме