The problem is refactoring. Want to rename a method? If the name isn’t unique enough to search for, you can’t do it. There’s too much risk that you’ll miss things and create severe bugs. Of course, that can be solved with really thorough unit tests, to some extent. But then you’re just spending a lot of extra time writing tests for things that typescript will enforce automatically.
You also get much better autocomplete from the editor with typescript, which speeds up development a lot. You save a pretty huge amount of time if you don’t have to constantly look through documentation or even dig through a bunch of code to figure out what methods are available and how to use them.
It does some funky things with type coercion and comparison which I don’t particularly like, but I generally understand why it does things that way.
A lot of the weird quirks of JS come from the desire to avoid completely blowing up and crashing as much as possible, which makes sense in a web dev context. Forcing weird operations to at least return something can prevent an unhandled error state in a single component from causing an entire page to crash, even if that component ends up malfunctioning as a result.
I’d bet that most people who think this way either haven’t used it in the last 10 years or they only know it from the memes.
Nope. Use it very often, though mostly usually with typescript.
Raw Javascript becomes a massive hindrance in any project past half a dozen files and 1000 lines.
Typescript makes it a lot more usable.
This was not our experience with raw JS programs in the 10k-20k loc range composed of scores of files.
The problem is refactoring. Want to rename a method? If the name isn’t unique enough to search for, you can’t do it. There’s too much risk that you’ll miss things and create severe bugs. Of course, that can be solved with really thorough unit tests, to some extent. But then you’re just spending a lot of extra time writing tests for things that typescript will enforce automatically.
You also get much better autocomplete from the editor with typescript, which speeds up development a lot. You save a pretty huge amount of time if you don’t have to constantly look through documentation or even dig through a bunch of code to figure out what methods are available and how to use them.
I agree, I also prefer Typescript, but I don’t think I’ve ever seen a meme about JS not having strongly typed variables.
They either don’t center around any specific problem or things that are also mostly true about TS.
It does some funky things with type coercion and comparison which I don’t particularly like, but I generally understand why it does things that way.
A lot of the weird quirks of JS come from the desire to avoid completely blowing up and crashing as much as possible, which makes sense in a web dev context. Forcing weird operations to at least return something can prevent an unhandled error state in a single component from causing an entire page to crash, even if that component ends up malfunctioning as a result.
Even now, the only thing that Javascript has going for it is that it’s not Groovy…