Utility type OmitThisParameter
Removes the this parameter from Type. If Type has
no explicitly declared this parameter, the result
is simply Type. Otherwise, a new function type
with no this parameter is created from Type.
Generics are erased and only the last overload
signature is propagated into the new function type.