Type inference is part of every modern language. Structural typing not so much, though.
Java has it through a compiler extension (https://github.com/manifold-systems/manifold/tree/master/man...) but I don't know many other languages that support this feature.
As much as I dislike the entire Javascript runtime environment, I find TypeScript to be the best typing system out there for any imperative language.