maybeMap<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeMap<TResult extends Object?>({
  1. TResult openUrl(
    1. OpenUrlAction value
    )?,
  2. TResult sendMessage(
    1. SendMessageAction value
    )?,
  3. TResult callback(
    1. CallbackAction value
    )?,
  4. TResult requestInput(
    1. RequestInputAction value
    )?,
  5. TResult changeLanguage(
    1. ChangeLanguageAction value
    )?,
  6. required TResult orElse(),
})

A variant of map that fallback to returning orElse.

It is equivalent to doing:

switch (sealedClass) {
  case final Subclass value:
    return ...;
  case _:
    return orElse();
}

Implementation

@optionalTypeArgs TResult maybeMap<TResult extends Object?>({TResult Function( OpenUrlAction value)?  openUrl,TResult Function( SendMessageAction value)?  sendMessage,TResult Function( CallbackAction value)?  callback,TResult Function( RequestInputAction value)?  requestInput,TResult Function( ChangeLanguageAction value)?  changeLanguage,required TResult orElse(),}){
final _that = this;
switch (_that) {
case OpenUrlAction() when openUrl != null:
return openUrl(_that);case SendMessageAction() when sendMessage != null:
return sendMessage(_that);case CallbackAction() when callback != null:
return callback(_that);case RequestInputAction() when requestInput != null:
return requestInput(_that);case ChangeLanguageAction() when changeLanguage != null:
return changeLanguage(_that);case _:
  return orElse();

}
}