Exceptions sind Laufzeit-Fehler. Ein statischer Typchecker sollte das falsch-getypte Programm aber schon vor der Laufzeit des Programms zurückweisen.
Hab grad Deinen Code getestet: Er wirft eine Exception:
Uncaught TypeError: Argument 1 passed .... thrown.