Недолюбливаю его, потому что всё через задницу, даже популярные фреймворки. Вот на фронте да, прям ненавижу, потому что он там неудобен и ненужен (энтерпрайз монстры не в счёт). А так, будь у него повсеместная поддержка, на бэке любил бы.
За as any. Сколько бы сберёг времени если бы не приходилось в 100500-ый раз обьяснять в PR ревью что использование any - это ну на совсем крайний случай, и что его использование нужно огораживать обёртками, и что он сводит на нет выгоду от использования строгих типов. Типичный случай: «TypeScript указал на несоответствие типов, я нифига не понял и не стал разбираться, нашёл на стековерфлоу что нужно вставить as any, заработало».
В идеале каждое использование as any должно требовать 20 подтягиваний, что бы его могли использовать только самые сильные программисты.
Сам язык хорош, но поддержка остальными разработчиками по принципу «чтоб было». Результат - кривые декларации, которые надо костылять, или использовать any, как тут уже говорили.
Ненавидят обычно или очень плохие вещи - потому что с ними приходится иметь дело. Или новые и очень хорошие, потому что нужно сопротивляться изменениям, но ещё есть небольшой шанс набежать и затоптать.
TypeScript особенно не спорный, достаточно удачный, практичный. Но не революционный чтобы его ненавидеть.