map<TResult extends Object?> method

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

A switch-like method, using callbacks.

Callbacks receives the raw object, upcasted. It is equivalent to doing:

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

Implementation

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