Сказать, что TypeScript «похож на взрослый JavaScript», звучит неприятно. Вы упускаете из виду то, что сделало JS таким динамичным и популярным на пути к поддержке миссии Microsoft по смещению методологии JS в сторону ООП. Многие люди не хотят так писать или думать, и действительно, многие эксперты сейчас говорят, что ООП в том виде, в каком его реализовали в Java и C#, было ошибкой. Но вот прошло полвека после того, как Microsoft внедрила TS в сообщество с открытым исходным кодом с помощью Angular. Взрывной рост JS не имел ничего общего с методологией ООП. Это был язык, в котором тщательно вводились функции, основанные на том, что действительно работает и что действительно необходимо. Это не язык, пронизанный метакодом. JavaScript может быть чем-то вроде хамлеона с точки зрения стиля, но его функциональный стиль может быть его лучшей формой. Но сейчас я все чаще вижу, как люди пишут громоздкие интерфейсы во имя безопасности типов. Я вижу частное, общедоступное, защищенное, с какой целью? Они не служат реальной практической цели, учитывая то, как функции JS составлены и используются. Это лекарство не от болезней, и оно не сделало ничего, кроме загромождения кодовой базы. Знание этого также не делает вас умнее. Это просто заставляет вас это знать и помнить об этом. Перефразируя здесь другого человека, мне не нужен JS, чтобы стать еще одним языком ООП. Он уже очень хорошо выполняет свою работу, и люди с кодом для лазаньи, естественно, в конечном итоге будут писать после того, как предвзятость TS по ООП уже начала ухудшать результаты написания JS компактным, но выразительным способом.

Чтобы провести аналогию, TS больше похож на TSA в аэропортах, которые ищут эту маленькую угрозу самым сложным и избыточным способом, замедляя всех. Я не останусь, нам не нужна безопасность. Мы делаем. Я не говорю, что ТС бесполезен. У него есть свои достоинства. Я говорю, что мне не нравится сильный уклон в сторону ООП, потому что, как я уже упоминал, это не имеет ничего общего с успехом JS. Наоборот, растущая популярность функционального программирования — это скорее обвинение в адрес ООП. Возможно, React забрал классы, когда они представили хуки, потому что они больше не хотят его поощрять. Они только когда-либо использовали его, чтобы установить локальную область состояния так, как это в любом случае сделала бы обычная функция-конструктор.

После многих лет превращения идей в продукты от начала до конца я понял, что некоторые вещи, какими бы гигантскими или популярными они ни были, не были полезными или не были лучшим способом делать что-то. Я лично надеюсь, что TS больше не будет набирать обороты за пределами Angular. Оставь это. Может быть, я ошибаюсь, но я чувствую, что в этой ситуации применима стратегия «меньше значит больше», и что все, что делает TS в конце дня, — это добавляет больше, чтобы сделать JS более громоздким… для недостаточной выгоды.