In programming we call a language loosely typed when you don't have to explicitly specify types of variables and objects.
A strongly typed language on the contrary wants types specified.
There are pros and cons, you can argue forever but the reality is that both approaches are great, in their intended context and usage.
A strong type system instead gives much more structure to a program and it's a great aid for example when working in teams, when one single programmer can't really have all the codebase in mind when working on it, and having types helps keep the code manageable.
You trade some of the flexibility that a loosely typed language gives you to get more security and trust in the codebase.
The compiler thanks to types can detect errors at compile time, rather than at runtime, making it simpler to write code that does what you want (and makes the testing phase slightly easier, although nothing can make your programs perfect).