I like the documentation that TypeScript types provide but I'm always running into lots of small quality of life issues that wear me down.
- Rest in any position
- Dedented block strings
- Default to const in for loops
- Lack of -> function shortand
- Everything is an expression
- Implicit returns
- Chained comparisons
- Nested unbraced object literals
- Optional trailing commas in arrays
- Optional trailing commas in objects
- x.map .name function shorthand
Each one is a fairly minor concern but they all add up. I'm sure different people will have a different list of favorite features as well. One of my goals in creating Civet was to fix my top 100 issues with TS syntax while being 99% backward compatible. The ultimate goal being: TS with my top 100 issues fixed will be the best language I have ever used.