Писать типы вначале или рассчитывать на вывод типов компилятором?
Никакой религии в этом вопросе нет и быть не может. Есть вполне конкретные правила, когда писать типы весьма полезно.

Если вы НЕ указываете тип, и рассчитываете на автовывод, то значит вам нужен не какой-то конкретный тип, а ТАКОЙ ЖЕ, КАК И... где-то ещё. Например, такой-же-как тип константы или такой-же-как тип возвращаемого значения функции. Иными словами, если я пишу:
const id = findIdByName("abc");
то мне не так важно, какой конкретно тип будет иметь id, мне важно чтобы это был тип возвращаемого значения функции "findIdByName". Для меня это приоритетно. Более того, если в какой-то момент тип возвращаемого значения у этой функции поменяется, то этот код продолжить компилироваться и, вероятно, даже РАБОТАТЬ (это зависит уже от того, что мы потом собираемся делать с id).

Совершенно противоположная ситуация - интерфейсы. В широком смысле. Интерфейсы функций, интерфейсы классов, интерфейсы в смысле типов данных, создаваемых с помощью "interface". Особенно если эту функцию/класс/интерфейс использует много кто ещё. Тогда наоборот, вам НЕЛЬЗЯ допустить, чтобы типы параметров или тип возвращаемого значения просто так поменялись. Это вдвойне важно, если вы пишите библиотеку и речь идёт о её публичном интерфейсе - любое изменение интерфейса тогда должно подкрепляться версионированием (например, семантическим). Вы не можете просто так, тем более по недосмотру, вместо числа начать возвращать из функции строку - вы сломаете ваших клиентов, причём даже не знаете как и где.
На этот вопрос нет однозначного ответа.
Мне нравится когда всё выводится само. Это приятно и удобно. Но нет никаких гарантий, что "само" выведется именно то, что нужно, и что ты где-то незаметно не накосячил. Потому в важных\сложных местах типы я пишу заранее. Но только в оных.

Часто по привычке из других языков описание структуры данных, задаваемых тут же, начинают с типа, но это абсолютно излишне в TypesScript, т.к. можно наоборот получить тип из готовой структуры, что сокращает кучу лишнего кода.

Ну и есть религиозное течение "types first" но это, на мой вкус, мазахизм чистой воды. И совершенно не стоит мнимых выгод.