Lately I've been rewriting some old JS into TypeScript, and doing so really shows you what the value of TypeScript is. It's actually genuinely difficult to know what types are flowing through the code. In TS you only need to see the immediate function code, but in JS you might need to read quite far back and follow a really long code path.
I always struggled with this in the past and considered data the hardest part about programming. How is your input data structured, how do you change it throughout the code, where do you need what aspects of the input data, and so on. That's really what complicates code. Simple and clear data results in easy code, and types facilitate that.