maybeMap<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeMap<TResult extends Object?>({
  1. TResult fragment(
    1. TransactionPartnerFragment value
    )?,
  2. TResult user(
    1. TransactionPartnerUser value
    )?,
  3. TResult telegramAds(
    1. TransactionPartnerTelegramAds value
    )?,
  4. TResult telegramApi(
    1. TransactionPartnerTelegramApi value
    )?,
  5. TResult other(
    1. TransactionPartnerOther value
    )?,
  6. TResult affiliateProgram(
    1. TransactionPartnerAffiliateProgram value
    )?,
  7. TResult chat(
    1. TransactionPartnerChat value
    )?,
  8. 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(TransactionPartnerFragment value)? fragment,
  TResult Function(TransactionPartnerUser value)? user,
  TResult Function(TransactionPartnerTelegramAds value)? telegramAds,
  TResult Function(TransactionPartnerTelegramApi value)? telegramApi,
  TResult Function(TransactionPartnerOther value)? other,
  TResult Function(TransactionPartnerAffiliateProgram value)?
  affiliateProgram,
  TResult Function(TransactionPartnerChat value)? chat,
  required TResult orElse(),
}) {
  final _that = this;
  switch (_that) {
    case TransactionPartnerFragment() when fragment != null:
      return fragment(_that);
    case TransactionPartnerUser() when user != null:
      return user(_that);
    case TransactionPartnerTelegramAds() when telegramAds != null:
      return telegramAds(_that);
    case TransactionPartnerTelegramApi() when telegramApi != null:
      return telegramApi(_that);
    case TransactionPartnerOther() when other != null:
      return other(_that);
    case TransactionPartnerAffiliateProgram() when affiliateProgram != null:
      return affiliateProgram(_that);
    case TransactionPartnerChat() when chat != null:
      return chat(_that);
    case _:
      return orElse();
  }
}