Javascript Ошибка функции сортировки: «Правая часть арифметической операции c должна иметь тип« any »,« number »,« bigint »или тип enum» - PullRequest
0 голосов
/ 30 апреля 2020

TS выдает ошибку в моем проекте Angular 7 для функции сортировки, приведенной ниже. Сообщение об ошибке: «Правая часть операции arithmeti c должна иметь тип 'any', 'number', 'bigint' или тип enum '".

Технически это будет работать если я закомментирую функцию, а затем приложение запустится. После запуска приложения я могу раскомментировать функцию, и все работает, как и ожидалось, включая функцию сортировки.

В основном я пытаюсь отсортировать даты по убыванию.

    this.SortArray = this.project.Attributes.sort(function (a, b) {

        return new Date(a.EffDate) - new Date(b.EffDate);
      });

1 Ответ

3 голосов
/ 30 апреля 2020

Используйте следующее в вашей функции сортировки:

return new Date(a.EffDate).getTime() - new Date(b.EffDate).getTime();

Определения TypeScript не позволяют сравнивать даты напрямую, поэтому сначала нужно преобразовать их в числа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...