class_docstr: Represents a value that may or may not be present.
  
  A `tf.experimental.Optional` can represent the result of an operation that may
  fail as a value, rather than raising an exception and halting execution. For
  example, `tf.data.Iterator.get_next_as_optional()` returns a
  `tf.experimental.Optional` that either contains the next element of an
  iterator if one exists, or an "empty" value that indicates the end of the
  sequence has been reached.
  
  `tf.experimental.Optional` can only be used with values that are convertible
  to `tf.Tensor` or `tf.CompositeTensor`.
  
  One can create a `tf.experimental.Optional` from a value using the
  `from_value()` method:
  
  >>> optional = tf.experimental.Optional.from_value(42)
  >>> print(optional.has_value())
  tf.Tensor(True, shape=(), dtype=bool)
  >>> print(optional.get_value())
  tf.Tensor(42, shape=(), dtype=int32)
  
  or without a value using the `empty()` method:
  
  >>> optional = tf.experimental.Optional.empty(
  ...   tf.TensorSpec(shape=(), dtype=tf.int32, name=None))
  >>> print(optional.has_value())
  tf.Tensor(False, shape=(), dtype=bool)
docstr: The type specification of an element of this optional.
  
  >>> optional = tf.experimental.Optional.from_value(42)
  >>> print(optional.element_spec)
  tf.TensorSpec(shape=(), dtype=tf.int32, name=None)
  
  Returns:
    A (nested) structure of `tf.TypeSpec` objects matching the structure of an
    element of this optional, specifying the type of individual components.
code: def element_spec(self):
      """The type specification of an element of this optional.
  
      >>> optional = tf.experimental.Optional.from_value(42)
      >>> print(optional.element_spec)
      tf.TensorSpec(shape=(), dtype=tf.int32, name=None)
  
      Returns:
        A (nested) structure of `tf.TypeSpec` objects matching the structure of an
        element of this optional, specifying the type of individual components.
      """
      raise NotImplementedError("Optional.element_spec")
  
imports: import abc
  from tensorflow.core.protobuf import struct_pb2
  from tensorflow.python.data.util import structure
  from tensorflow.python.framework import composite_tensor
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import tensor_spec
  from tensorflow.python.framework import type_spec
  from tensorflow.python.ops import gen_optional_ops
  from tensorflow.python.saved_model import nested_structure_coder
  from tensorflow.python.util import deprecation
  from tensorflow.python.util.tf_export import tf_export
label_desc: Use image node_id 3 for calling the Optional obj's underlying member method code with example usage: obj.element_spec() without return types