Очень много динамических языков программирования, которые не имеют статических версий и до сих пор нормально существуют. Поэтому вопрос необходимости больше всё-таки про предпочтения.
Самое приятное при подключении Typescript - это расширенные подсказки в IDE в тех случаях, где сущности выбираются динамически. Ещё бывает полезным использовать TS, чтобы чаще задумываться о реализации Null Object Pattern, чтобы отучить себя в коде от проверок, типа if (user && user.isAdmin). Также, для тех, кто писал на Java и хочет перекатиться в JavaScript, то переход через Typescript будет менее болезненным. Справедливо и обратное.
В остальном, доводы "за" и "против" чаще всего являются поводом поспорить, иногда развлечения ради, поэтому лучше ориентироваться на свой опыт. Кому-то удобно мыслить статикой, кому-то динамикой.
Также, типизацию можно сделать ненавязчивой, используя её через JSDoc только там, где это требуется. Об этом есть отдельная статья. Но без опыта весь этот синтаксис комментариев может только запутать и оставить неприятное впечатление.
Резюмируя всё вышесказанное, я бы рекомендовал опираться на личный опыт и собственное представление как правильно. Вы всегда найдёте сторонников в любом лагере. Чтобы в полной мере ощутить силу статической типизации, лучше писать на статически типизированных языках, типа C#, Java. И в динамических языках познайте их плюсы и минусы и научитесь использовать их без прикрученных сбоку инструментов.
Ну и, в конце концов, программисту платят за решённые задачи, а не выбранную технологию.
Пример валидации на этапе семантического анализа