Elm also has a sound type system and no side effects because it doesn't need to be compatible with vanilla JavaScript
If you use something like nextjs and strict compiler options for TS a lot of these concerns go away.
> You get everything you need out need out of the box.
This is specious. There's lots of comments about how you don't get everything out of the box and for the parts that are missing it's a pain. Perhaps your particular use cases are covered, that's great.
Also TS is just part of a potential solution while Elm comes with all batteries included. You still have to set up your code formater, liner, decide on a framework, state management library and so on and so on. With Elm, you just use elm-format. No arguing about code style, not arguing about how structure your code. There is only way to do it. It is not only a language but a framework. You get everything you need out need out of the box.