I spent way too long today figuring out why my app was doing something that it’s NOT supposed to do on weekends.
I read Luxon’s docs (pretty cool lib tbh) again and again, and tried everything I could think of to get isWeekend to return a sane result.
Turns out I was pulling a somewhat older version of Luxon, where isWeekend didn’t exist. In any sane language, I expect I’d get a huge warning about a property that doesn’t exist, but alas…
Typescript helps me keep my sanity, but juuuuust barely.
Yeah that’s exactly what I think happened to him. He needs a better IDE and/or needs to stop copy/pasting code from stackoverflow or documentation that doesn’t match his library version.
It leads to typescript
You get surprises from npm
I spent way too long today figuring out why my app was doing something that it’s NOT supposed to do on weekends.
I read Luxon’s docs (pretty cool lib tbh) again and again, and tried everything I could think of to get isWeekend to return a sane result.
Turns out I was pulling a somewhat older version of Luxon, where isWeekend didn’t exist. In any sane language, I expect I’d get a huge warning about a property that doesn’t exist, but alas…
Typescript helps me keep my sanity, but juuuuust barely.
Weren’t you getting runtime errors for the function not being found?
No, they were probably getting false every time
Falsy* because it was undefined
However, their IDE should have highlighted it as an unknown property. Guess this guy is coding in notepad or vi.
Yep, thanks for correcting me. In fact, if they write something like
The block will never be executed with the old version of library
Yeah that’s exactly what I think happened to him. He needs a better IDE and/or needs to stop copy/pasting code from stackoverflow or documentation that doesn’t match his library version.
My dude, you need to understand that all that anger and resentment, it is not you. It’s the years of JavaScript poisoning your mind.
In any case, that goes to my point. I would have to be saved by my IDE, when any sane language will blow up in your face as soon as you try to run it.
I don’t know how luxon works, but isWeekend could be a property instead of a function
It is. It also happens to be undefined, and checking that for truth is how I was bitten.
That’s fair. Typescript has to cook with the existing js ecosystem.
If isWeekend doesn’t exist, then the weekend doesn’t exist, so it’s naturally false.
That’s why JavaScript gets pushed so hard - it’s part of the capitalist agenda to keep us working 7 days a week