whenOrNull<TResult extends Object?> method

  1. @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({
  1. TResult? commit(
    1. Commit data
    )?,
  2. TResult? sync(
    1. Sync data
    )?,
  3. TResult? identity(
    1. Identity data
    )?,
  4. TResult? account(
    1. Account data
    )?,
  5. TResult? info(
    1. Info data
    )?,
  6. TResult? unknown(
    1. Map<String, dynamic> data
    )?,
})

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( Commit data)?  commit,TResult? Function( Sync data)?  sync,TResult? Function( Identity data)?  identity,TResult? Function( Account data)?  account,TResult? Function( Info data)?  info,TResult? Function( Map<String, dynamic> data)?  unknown,}) {final _that = this;
switch (_that) {
case USyncSubscribeReposMessageCommit() when commit != null:
return commit(_that.data);case USyncSubscribeReposMessageSync() when sync != null:
return sync(_that.data);case USyncSubscribeReposMessageIdentity() when identity != null:
return identity(_that.data);case USyncSubscribeReposMessageAccount() when account != null:
return account(_that.data);case USyncSubscribeReposMessageInfo() when info != null:
return info(_that.data);case USyncSubscribeReposMessageUnknown() when unknown != null:
return unknown(_that.data);case _:
  return null;

}
}