All of your data structures have types, whether you declare them or not. Your code expects things to be a certain way, and if it's not, things break. Static typing just means that you annotate you code with your expectations so you can get some automated error and consistency checking.
Automation is good, right?
With dynamic typing, you need to manually write more unit tests to get the same level of confidence. That's just not worth it for anything important.