Static vs dynamic typing aka catching type errors on compile and not on runtime.
Easily refactor code and all references there of. I would also say that I‘m faster using TypeScript BECAUSE of autocompletion, implicit code documentation through types, etc. The cost you listed are solved during the setup of a project.
I can just talk for myself, but I started a project at work and pushed for TypeScript. We now have automatically generated Swagger-clients fully typed, with a GraphQL layer infront of it with generated types for queries. Basically everything is typed now and I don‘t have to test or check incomming data or guess what kind of object I have to expect from our backend. The tooling is so good now, that the benefits outweigh any setup hassle you have upfront IMHO.