Thanks for your response. I agree with you somewhat in that of course bad development is always possible no matter what you do. In the project I was talking about in my post, probably 60% of the developers had previous experience in strongly-typed languages, and this experience did not translate into understanding how to explain to TS what they were doing or how to read TS types easily. Most of the rest of the devs were close to straight out of boot camps, and not having a long history of writing JS any other way seemed to mostly translate to being quicker to use any or ts-ignore.
I do believe that developing test-first, which is what TDD is, will result in developers that code better, so at some point yes the tests will be well-designed. Inexperienced TS developers also write poor or no types, so apples -> apples I don't think you have an argument there.
And, again. if you code test-first, you will not have a "false" sense of security, because no code will exist that does not first have tests that guarantee its correctness. Yes, you can have bugs where you didn't imagine some scenario or misunderstood a requirement, but TS in no way prevents that. And, in fact, the mental fog created by having to write and sort through all that basically unrelated code may make it more likely.
We only get so much time to produce software, and we often need to pick where we're going to spend our extra time. It's important to understand that when you're learning to write tests or typescript and you're doing all the other things around maintaining them, there are other things you're not doing that would add (potentially more) value. I think it's important to weigh ROI and also opportunity cost. I think both TDD and TS *eventually* pay for themselves, but the question is how long will that take, how much is the compounding effect, and do those things compare favorably with the other choices you could have made?
In the end, I think you're more likely to get your point #3 if you spend as much time in tests as you possibly can, just because writing good tests and making them pass teaches you so much about good design.