# Nrlint does not allow subraction of Dates

**URL:** <https://discourse.nodered.org/t/nrlint-does-not-allow-subraction-of-dates/51621>\
**Category:** General\
**Created:** [28 September 2021 13:01 UTC](https://discourse.nodered.org/t/nrlint-does-not-allow-subraction-of-dates/51621 "2021-09-28T13:01:49Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [28 September 2021 13:01 UTC](https://discourse.nodered.org/t/nrlint-does-not-allow-subraction-of-dates/51621/1 "2021-09-28T13:01:49Z")

</div>

Using nrlint 1.0.2 the following code shows the error that the left hand side of an arithmetic operation must of type 'any', 'Number' ...  
The function does run ok (it subtracts the millisecond values).

```auto
const d1 = new Date()
const d2 = new Date(d1.getTime() + 1000)
msg.payload = d2 - d1
return msg;

```

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [28 September 2021 13:09 UTC](https://discourse.nodered.org/t/nrlint-does-not-allow-subraction-of-dates/51621/2 "2021-09-28T13:09:43Z")

</div>

Hi @Colin

That is odd. A quick test with regular eslint (which is what the nrlint rule is using) seems fine with that code:

> **[ESLint Demo](https://eslint.org/demo#eyJ0ZXh0IjoiZnVuY3Rpb24gdGVzdChtc2cpIHtcbiBjb25zdCBkMSA9IG5ldyBEYXRlKClcbiBjb25zdCBkMiA9IG5ldyBEYXRlKGQxLmdldFRpbWUoKSArIDEwMDApXG4gbXNnLnBheWxvYWQgPSBkMiAtIGQxXG4gcmV0dXJuIG1zZztcbn1cblxudGVzdCgpOyIsIm9wdGlvbnMiOnsicGFyc2VyT3B0aW9ucyI6eyJlY21hVmVyc2lvbiI6MTIsInNvdXJjZVR5cGUiOiJzY3JpcHQiLCJlY21hRmVhdHVyZXMiOnt9fSwicnVsZXMiOnsiY29uc3RydWN0b3Itc3VwZXIiOjIsImZvci1kaXJlY3Rpb24iOjIsImdldHRlci1yZXR1cm4iOjIsIm5vLWFzeW5jLXByb21pc2UtZXhlY3V0b3IiOjIsIm5vLWNhc2UtZGVjbGFyYXRpb25zIjoyLCJuby1jbGFzcy1hc3NpZ24iOjIsIm5vLWNvbXBhcmUtbmVnLXplcm8iOjIsIm5vLWNvbmQtYXNzaWduIjoyLCJuby1jb25zdC1hc3NpZ24iOjIsIm5vLWNvbnN0YW50LWNvbmRpdGlvbiI6Miwibm8tY29udHJvbC1yZWdleCI6Miwibm8tZGVidWdnZXIiOjIsIm5vLWRlbGV0ZS12YXIiOjIsIm5vLWR1cGUtYXJncyI6Miwibm8tZHVwZS1jbGFzcy1tZW1iZXJzIjoyLCJuby1kdXBlLWVsc2UtaWYiOjIsIm5vLWR1cGUta2V5cyI6Miwibm8tZHVwbGljYXRlLWNhc2UiOjIsIm5vLWVtcHR5IjoyLCJuby1lbXB0eS1jaGFyYWN0ZXItY2xhc3MiOjIsIm5vLWVtcHR5LXBhdHRlcm4iOjIsIm5vLWV4LWFzc2lnbiI6Miwibm8tZXh0cmEtYm9vbGVhbi1jYXN0IjoyLCJuby1leHRyYS1zZW1pIjoyLCJuby1mYWxsdGhyb3VnaCI6Miwibm8tZnVuYy1hc3NpZ24iOjIsIm5vLWdsb2JhbC1hc3NpZ24iOjIsIm5vLWltcG9ydC1hc3NpZ24iOjIsIm5vLWlubmVyLWRlY2xhcmF0aW9ucyI6Miwibm8taW52YWxpZC1yZWdleHAiOjIsIm5vLWlycmVndWxhci13aGl0ZXNwYWNlIjoyLCJuby1taXNsZWFkaW5nLWNoYXJhY3Rlci1jbGFzcyI6Miwibm8tbWl4ZWQtc3BhY2VzLWFuZC10YWJzIjoyLCJuby1uZXctc3ltYm9sIjoyLCJuby1vYmotY2FsbHMiOjIsIm5vLW9jdGFsIjoyLCJuby1wcm90b3R5cGUtYnVpbHRpbnMiOjIsIm5vLXJlZGVjbGFyZSI6Miwibm8tcmVnZXgtc3BhY2VzIjoyLCJuby1zZWxmLWFzc2lnbiI6Miwibm8tc2V0dGVyLXJldHVybiI6Miwibm8tc2hhZG93LXJlc3RyaWN0ZWQtbmFtZXMiOjIsIm5vLXNwYXJzZS1hcnJheXMiOjIsIm5vLXRoaXMtYmVmb3JlLXN1cGVyIjoyLCJuby11bmRlZiI6Miwibm8tdW5leHBlY3RlZC1tdWx0aWxpbmUiOjIsIm5vLXVucmVhY2hhYmxlIjoyLCJuby11bnNhZmUtZmluYWxseSI6Miwibm8tdW5zYWZlLW5lZ2F0aW9uIjoyLCJuby11bnVzZWQtbGFiZWxzIjoyLCJuby11bnVzZWQtdmFycyI6Miwibm8tdXNlbGVzcy1jYXRjaCI6Miwibm8tdXNlbGVzcy1lc2NhcGUiOjIsIm5vLXdpdGgiOjIsInJlcXVpcmUteWllbGQiOjIsInVzZS1pc25hbiI6MiwidmFsaWQtdHlwZW9mIjoyfSwiZW52Ijp7fX19)**
>
> A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease.

No doubt some subtle option missing here. Please raise an issue on the nrlint repo.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [28 September 2021 13:22 UTC](https://discourse.nodered.org/t/nrlint-does-not-allow-subraction-of-dates/51621/3 "2021-09-28T13:22:02Z")

</div>

Done.

> <https://github.com/node-red/nrlint/issues/21>
>
> \### Current Behavior
> 
> Using nrlint 1.0.2 the following code shows the error that… the left hand side of an arithmetic operation must of type 'any', 'Number' ...
> The function does run ok (it subtracts the millisecond values).
> \`\`\`
> const d1 = new Date()
> const d2 = new Date(d1.getTime() + 1000)
> msg.payload = d2 - d1
> return msg;
> \`\`\`
> 
> \### Expected Behavior
> 
> No error should be reported
> 
> \### Steps To Reproduce
> 
> See example flow
> 
> \### Example flow
> 
> \`\`\`
> \[{"id":"0ae098f0f8d40b2e","type":"inject","z":"84405ff5.25fa6","name":"","props":\[{"p":"payload"},{"p":"topic","vt":"str"}\],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":230,"y":2540,"wires":\[\["377b3ad15f21e80e"\]\]},{"id":"377b3ad15f21e80e","type":"function","z":"84405ff5.25fa6","name":"nrlint test","func":"const d1 = new Date()\\nconst d2 = new Date(d1.getTime() + 1000)\\nmsg.payload = d2 - d1\\nreturn msg;","outputs":1,"noerr":2,"initialize":"","finalize":"","libs":\[\],"x":380,"y":2540,"wires":\[\["680355ca417c9cf1"\]\]},{"id":"680355ca417c9cf1","type":"debug","z":"84405ff5.25fa6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":560,"y":2540,"wires":\[\]}\]
> \`\`\`
> 
> 
> \### Environment
> 
> \- nrlint version: 1.0.2
> \- Node-RED version: 2.0.6
> \- Node.js version: 14.17.6
> \- npm version: 614.15
> \- Platform/OS: Ubuntu
> \- Browser: Firefox

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [27 November 2021 13:22 UTC](https://discourse.nodered.org/t/nrlint-does-not-allow-subraction-of-dates/51621/4 "2021-11-27T13:22:27Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
