Писать на чистом ДЖсе это тоже самое что пойти срать забыв снять штаны
Тайпскрипт норм, но опять же, даже он позволяет много чего лишнего, можно не указывать тип у метода (на код ревью сразу таких разворачивают), можно перечислять типы через | (private variable: string | number), что тоже бред, тот же самый бред можно написать в сигнатере метода (public method(): string | number | undefined {} ), как в 1 случаи может вернуться строка, в другом случаи число, в третьем undefined, не понятно (таких соответственно тоже на код ревью разворачивают, но тут в добавок леща профилактического добавляют), так же можно указать тип any/unknown тип (разворачивают на код ревью, но тут лещ уже не поможет, именно для таких случаев компании выдают ДМС, чтобы сотрудник подлечился ментально)
Интерфейсов нет в рантайме, следовательно Instanceof Interface не проверишь
Еще много минусов, но я уже их не помню, года 3 уже не писал на нем
Но даже со всеми минусами TSа это куда лучше чем писать на куске г.... JS'е