Definition - What does Statically Typed mean?
Statically typed is a programming language characteristic in which variable types are explicitly declared and thus are determined at compile time. This lets the compiler decide whether a given variable can perform the actions requested from it or not.
Static typing associates types with variables, not with values. Some examples of statically typed programming languages include:
Techopedia explains Statically Typed
In addition, tooling and refactoring are better in statically typed languages since the tools can find out the variable types as the program is coded. This helps to instantly understand the parameters for a given function and also the methods available for a specific object. This makes the refactoring process much more straightforward as well.
With just a few exceptions, once a method or object is refactored, it is easy to immediately understand which other codes depend on it. However, this comes at a cost. With a few exceptions, statically typed languages call for additional annotations to notify the compiler regarding the intended objectives of the author.
When it comes to object structure, statically typed languages tend to be less flexible when compared to their dynamic counterparts. It is not possible to add fields and methods to a given object during run time. This can be complicated when handling less structured data; for instance, parsing JSON, XML or database queries leads to less-than-ideal object mappings.