TypeScript on the client-side might be a good idea, but it would be something very different. As explained in this post, TypeScript is a transpiler + type checker. This means it performs all type checking and analysis at transpile time, ahead of deployment. If type checking fails then no code is generated.
TypeScript on the client-side means that un-transpiled, and un-validated code can be deployed to the client. Then, either validation is performed prior to execution, which could delay it, or as code executes, which means that code that is not on the execution path isn’t validated at all.
Either way, rather than failing during development, code with type errors will fail during execution, for the end-users. This behavior has some merits, i.e. TDD, and is similar to behavior of ‘const’ in ES2015. But is very different than what TypeScript currently is.