whether or not a compiler can understand a type at compile time
In many / most(?) compiled languages that’s because the type is specified at compile time. With interpreted languages that’s often not the case, and in that case determining the type can be extremely hard.