Snarkiness aside, this is hardly a static type check. This appears to be a runtime argument check, somewhat akin to the following python:
def foo(*, a, b): return a+b
which errors out at runtime if `a` or `b` are omitted, despite being keyword arguments which are usually optional.