That's also one of the reason why the framework is so popular in developing countries.
I tried something similar a few years ago and I would have said you're absolutely right. But with the one I'm writing now, it is quite the different experience.
Historically it was clunky and weird.
Now it’s able to use the exact same Web APIs that you’re already used to but now in a type safe way and much much better type safety guarantees that Typescript provides.
Example code here: https://github.com/dart-lang/web/blob/main/example/example.d...
I hear you, but what do you expect Dart's contribution as a language/technology to be in this space, effectively? While syntactically comparable, TypeScript is a better typed JavaScript than Dart will probably ever be (in terms of leveraging a type system to enable more complex/maintainable apps and libraries). And since every programming language compiles to JavaScript these days, you've got some compelling options if you really want to depart from JS altogether (with http://www.scala-js.org/ an amazing one, for which I find the mix of Functional + Object Orientation to lend itself very well to the web).
In all, I really fail to see a good reason for Dart to exist nowadays (and surviving as "Flutter's best language buddy" isn't a great one).
At the same time, thank goodness Dart doesn't have all the warts of Javascript and a standard sane build system. Dart doesn't have to be the best Javascript to be good at what it does, especially now with algebraic data types and pattern matching.
I'm hopeful they'll make Wasm production-ready soon to move away from JS transpilation.
All good things.
Hot take to think Dart is superior in that respect.
I just wished it would have native tuples.
Also "destructuring" via patterns: https://dart.dev/language/patterns