I’ll also say that IME, errors that I run across in JS aren’t due to problems that could be solved by static typing. The lion’s share of them are improper function scope or control flow. I can’t think of an instance in a broad application where I had to resolve a defect because 1 !== “1”. There seems to be a lot of overhead in moving to TS, in learning curve, tooling, build pipeline and in hiring knowledgeable resources. Why pay those prices for types?