Typescript also supports generics similar to the way Java added them (with type erasure) and I find them amazingly useful vs normal Javascript.

Other language features like checked exceptions are far more controversial.

I think it would be interesting if we've evolved to a point where most programmers felt like generics were a good addition to their languages and that their use was no longer controversial.

The only major downside I see to them is that they add more verbosity.

Also, the type erasure is a major pain and can cause all sorts of confusion but this is mostly an implementation detail.