whenOrNull<TResult extends Object?> method

  1. @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>(
  1. TResult? $default(
    1. String chatGroupId,
    2. List<ChatEvent> eventsPage,
    3. String id,
    4. int pageNumber,
    5. int pageSize,
    6. PaginationDirection paginationDirection,
    7. int startTimestamp,
    8. ChatStatus status,
    9. int totalPages,
    10. ConfigSpec? config,
    11. int? endTimestamp,
    12. String? metadata,
    )?
)

A variant of when that fallback to returning null

It is equivalent to doing:

switch (sealedClass) {
  case Subclass(:final field):
    return ...;
  case _:
    return null;
}

Implementation

@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( String chatGroupId,  List<ChatEvent> eventsPage,  String id,  int pageNumber,  int pageSize,  PaginationDirection paginationDirection,  int startTimestamp,  ChatStatus status,  int totalPages,  ConfigSpec? config,  int? endTimestamp,  String? metadata)?  $default,) {final _that = this;
switch (_that) {
case _ChatPagedEvents() when $default != null:
return $default(_that.chatGroupId,_that.eventsPage,_that.id,_that.pageNumber,_that.pageSize,_that.paginationDirection,_that.startTimestamp,_that.status,_that.totalPages,_that.config,_that.endTimestamp,_that.metadata);case _:
  return null;

}
}