Earlier quoted context omitted.
strong typing: 2 + "2" is an error (e.g. Python vs JS) static typing: 2 + "2" does not compile/parse (e.g. Python vs mypy, Typescript vs JS) this is a very simplistic example, but should get you to feel the difference.
> static typing: 2 + "2" does not compile/parse (e.g. Python vs mypy, Typescript vs JS) I think this example is not correct, because static typing doesn’t affect how values of different types interact. And while I don’t know of any staticly typed language where specifically `2 + “2”` is a valid expression, statically typed languages definitely can be weakly typed: the most prominent example is C where one can combine…
But a dynamic language can have types associated with variables, and it can forbid changing those types after their types have been checked the first time.