Argument type validation with user-friendly error messages

Could you also add a test case for the passing a `type_` argument that is not in the `TYPES` mapping?