Get a free chapter from the Senior Engineer Mindset book and a sample audiobook chapter, followed by a Senior Mindset 101 email course.
Anecdotally, TypeScript has been the best thing that's ever happened to my code and my team. Makes our code easier to navigate, helps us better communicate intent, and prevents common bugs that creep into large codebases with many engineers.
A semantic regression happens when you change the arguments in a function or move things around and forget to update a file. A logic regression happens when you change the logic and something relies on the old logic. This is often a sign of architectural complexity or too much DRY with too little separation of concerns.
Software engineering researchers have been conflicted about static typing since the 1960's. Is it worth the effort? Does it even help?
Somewhat famously, Hanenberg performed a controlled experiment about static and dynamic type systems at UC Irvine in 2010. The experiment found that students using the statically typed version of his language were slower at writing code than students using the dynamic version. And the code wasn't much better or less error prone.