It's a hard question to answer. TypeScript catches a certain class of bug, but requires a lot of extra work creating types and essentially over-specifying things. Personally I don't think it's worth it.
That's not my experience at all. I've found that you get most of the benefits via type inference with very little additional work. Although if you try to be super strict and forbid any use of "any" or casting, then that could get annoying and possibly counterproductive.
Why would you ever want to use any if you could avoid it? It completely undermines the benefits of TS. Most of the time you really want unknown or generics.