Левая -hand и правая сторона арифметической операции должны иметь тип "any", "number" или тип перечисления

Я получаю следующую ошибку. Я не могу выяснить, где именно я ошибся. Может кто-нибудь помочь мне с решением

enter image description here

Код

 function() {
    this.devices.forEach(device => {
      let lastConnect = device.lastConnection.split('+');
      lastConnect = lastConnect[0] + 'Z';
      let diff = Math.abs(new Date() - new Date(lastConnect));//getting error here
}

Ответ 1

Я выяснил эту проблему.

Этот код работает только в Javascript

Math.abs(new Date() - new Date(lastConnect)) .

Inorder, чтобы заставить его работать в Typcript. Обновите код, как показано ниже.

Math.abs(Date().getTime() - new Date(lastConnect).getTime());

Ответ 2

Самый простой ответ будет

Math.abs(<any>new Date() - <any>new Date(lastConnect));

Ответ 3

Еще один отличный способ:

Math.abs((new Date() as any) - (new Date(lastConnect) as any));

Ответ 4

Нет необходимости в Math.abs(), чтобы ответить на этот вопрос...

Просто использование метода getTime() преобразует дату в число (Date.prototype.getTime()), чтобы вы могли выполнить операцию без этой ошибки

Проверьте на этом примере