1. Tooling is bad - barely there intellisense, unsafe or no refactoring
2. Development flow sucks - you can't check for common errors until you refresh the page
3. JS Code bases of these sizes are hard to reason about for many reasons like duck typing especially if you got code with bad or lazy naming conventions
This is where Typescript comes in.
1. TypeScript's static typing and annotations are great for catching errors on the tool rather than waiting for a page refresh
2. Code is easier to reason about; example, function params are known if you're using interfaces
3. TypeScript allows safe refactoring and good intellisense support
4. Although from Microsoft, TypeScript is open source with a clear roadmap with rapid releases - typically 3-4 months
But Typescript is not without faults.