Static and dynamic typed languages

Static typed - compiler throws an error when types are used incorrectly.
Examples - C/C++, Java, Go:

void add(int a, int b){
  cout << a + b
}
Usage of static typed code:
add(1, 3) => 4
add(1, "three") => ERROR
Dynamic typed - types for variables are not enforced.
Examples: Python, Javascript, PHP:
function add(a, b){
  return a + b
}
Usage of dynamic typed code:
add(1, 3) => 4
add(1, "three") => 1three