Строгая типизация на системе типов, заточенной для языка с динамической типизацией уже не лучшая идея. Вот в AssemblyScript система типов адекватна задаче, это другое дело, и я за AssemblyScript, но категорически против TypeScript и вот по таким причинам:
1. Не любая конструкция джаваскрипт может быть им типизирована, а то, что это надмножество - это просто маркетинговое вранье.
2. Иногда он неправильно обрабатывает типы и находит ошибки там, где их нет, а пропускает там, где они есть.
3. Разработчики бегут от сложности предметной области в уютный мирок обсуждения типов в курилках, это достаточно круто звучит все и делает видимость сложного и серьезного дела.
4. Разработчики находятся под гипнозом ложной надежности и они меньше заботятся о тестах и ревью кода.
5. В нем нет автовывода, а вместо него все много раз дублируется и захламляет код, снижая его читаемость и понятность.
6. В рантайме проверки типов нет, а при взаимодействии клиента и сервера или микросервисов друг с другом все проверки нужно делать руками.
7. Тайпскрипт некоторые идеи передаст в js и отомрет, тогда нужно будет переписывать проекты, как уже было с кофескриптом и многими другим суррогатными языками.
8. Нет четкой спецификации синтаксиса языка, это просто бардак.
9. Ну и как показал уже Илья - это экономически не выгодно.
10. Основные ошибки это ошибки бизнес-логики, алгоритмов, выбора и построения структур данных, архитектуры и т.д., ошибки типизации это очень небольшой процент.