The \Drupal\Core\TypedDate\ComplexDataInterface interface provides an isEmpty method. This method is used to check whether the field's value is empty, for example, when verifying that the required field has data. The \Drupal\Core\TypedData\Plugin\DataType\Map class implements the method. By default, the method ensures that the values are not empty.
Field types can provide their own implementations to provide a more robust verification. For instance, the field can validate that the first name can be entered but not the last name, or the field can require both the first and the last name.