In a strongly statically typed language, the compiler must detect all type errors. No program that compiles without errors can possibly encounter a type error while running.

In a weakly statically typed language, some type errors are detected at compile time but some can only be detected while the program is running, and some might go undetected.