code: def _default_type_inferrer(
      *args: Any, **kwargs: Any
  ) -> Optional[_TypeHint]:
      """Default _TypeInferrer that mirrors args[0] type."""
      del kwargs
      if len(args) == 1:
          only_arg = args[0]
          if typing_utils.is_compatible(
              only_arg, Mapping[str, channel.BaseChannel]
          ):
              return {k: v.type for k, v in only_arg.items()}
          if isinstance(only_arg, channel.BaseChannel):
              return only_arg.type
      return None
  
imports: import contextlib
  import inspect
  from typing import Callable, Type, Union, Mapping, Any, Optional, Sequence, cast, overload
  from tfx.dsl.control_flow import for_each_internal
  from tfx.dsl.input_resolution import resolver_op
  from tfx.types import artifact
  from tfx.types import channel
  from tfx.types import resolved_channel
  from tfx.utils import doc_controls
  from tfx.utils import typing_utils
label_desc: Use image node_id 1 for calling a global function with example usage: _default_type_inferrer() and returns: None, unknown, only_arg