я думаю ты уделил не достаточное внимание этому вопросу и противопоставляешь методику контроля качества программы и язык программирования. с таким подходом к программам на c++ тесты не нужны. там статическая типизация. покрытие тестами может оказаться более длительным, чем просто писать на тс. в тс есть много плюшек, которые дают не только контроль. в целом IDE сразу подсказывает где ты накосячил с типами c передачей не тех данных или не того интерфейса (без запуска тестов или компиляции) IDE показывает какой класс или интерфейс ожидает получить тот или иной метод. Он также позволяет создавать композитные типы, то есть например создавать новый тип включающий в себя два других типа. Ну и конечно дженерики для обобщенного программирования. Тесты конечно дают контроль качества, но есть ещё процесс чтения и написания, поддержки существующего кода. Когда приложение большое, я думаю эти механизмы контроля самого языка влияют напрямую на удобство чтение и написания. Понятно, что код с типами с непривычки кажется плохой затеей, но стоит пописать в таком стиле чтобы понять в чем плюсы и минусы. Один из минусов конечно, что тайпскрипт в рантайме не работает. для маленького проекта, который не будет масштабироватся скорее всего тс тоже не нужен. в целом никто не мешает какие-то сложные модули писать на тс, а что-то простое без тс, ведь в тс полная поддержка javascript
++ отлично описал