Old debate, and it seems like static typing is not going anywhere but the finish line, before all others. It's really a matter of "think ahead" vs. "be concise". I'm not talking about the usage of static typing for languages closer to metal, where this is an absolute necessity to avoid the overhead of figuring out what the duck is, but simply the matter of practical, day to day programming with our good old types. Auto-completion is cool and all, but does result in more verbose and arguably less readable writing. If you want conciseness, look no further than LISP. Don't even get started with the parantheses, OK? Even if you find them ugly, you're not getting more elegant than the operator-first nature of these dialects.
The question then becomes, if we'd rather think ahead to avoid bugs, would we achieve that with tests or the sweet squiggly lines of mistyping? Well, why not both? It's my personal preference, at least. My only issue is how people undervalue tests. I do know tests, not contracts. I'll look into contracts soon enough, but, ultimately, if I were to choose between a dynamically typed language with tests or a statically typed one without them, I'd go for the first option for sure.