In my experience, a sufficiently rich type system is extremely similar to TDD in this regard.
Both give you super fast feedback and a lot of issues can be solved before you finally launch your software for the first time. But neither will save you from bad design or misunderstanding your requirements.