After maintaining a huge JS codebase for years and finally upgrading it to TS, my life is so much easier. Refactoring is faster and less error-prone. I no longer have to manually document the parameter/return types for every function. I don’t have that gnawing “oh damn, what if I missed something” feeling whenever I make changes.
Yes it’s a bit more work up front but it pays dividends on larger codebases.
This. Developers have to be very detail-oriented but a lot of managers are not. When this happens to me, I like to write the task up in bullet points (making assumptions where necessary) and ask my project manager to review, “just to make sure I understood correctly.” If I’ve assumed something wrongly, he normally admits that he wasn’t specific enough and we work it out together.