mapOrNull<TResult extends Object?> method

  1. @optionalTypeArgs
TResult? mapOrNull<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
    )?,
})

A variant of map that fallback to returning null.

It is equivalent to doing:

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

Implementation

@optionalTypeArgs TResult? mapOrNull<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,}){
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 null;

}
}