maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>(
  1. TResult $default(
    1. String id,
    2. bool livemode,
    3. String paymentMethodType,
    4. BillingDetails billingDetails,
    5. @JsonKey.new(name: 'Card') Card card,
    6. @JsonKey.new(name: 'SepaDebit') SepaDebit sepaDebit,
    7. @JsonKey.new(name: 'BacsDebit') BacsDebit bacsDebit,
    8. @JsonKey.new(name: 'AuBecsDebit') AuBecsDebit auBecsDebit,
    9. @JsonKey.new(name: 'Ideal') Ideal ideal,
    10. @JsonKey.new(name: 'Fpx') Fpx fpx,
    11. @JsonKey.new(name: 'USBankAccount') UsBankAccount usBankAccount,
    12. @JsonKey.new(name: 'Multibanco') Multibanco? multibanco,
    13. String? customerId,
    )?, {
  2. required TResult orElse(),
})

A variant of when that fallback to an orElse callback.

It is equivalent to doing:

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

Implementation

@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( String id,  bool livemode,  String paymentMethodType,  BillingDetails billingDetails, @JsonKey(name: 'Card')  Card card, @JsonKey(name: 'SepaDebit')  SepaDebit sepaDebit, @JsonKey(name: 'BacsDebit')  BacsDebit bacsDebit, @JsonKey(name: 'AuBecsDebit')  AuBecsDebit auBecsDebit, @JsonKey(name: 'Ideal')  Ideal ideal, @JsonKey(name: 'Fpx')  Fpx fpx, @JsonKey(name: 'USBankAccount')  UsBankAccount usBankAccount, @JsonKey(name: 'Multibanco')  Multibanco? multibanco,  String? customerId)?  $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _PaymentMethod() when $default != null:
return $default(_that.id,_that.livemode,_that.paymentMethodType,_that.billingDetails,_that.card,_that.sepaDebit,_that.bacsDebit,_that.auBecsDebit,_that.ideal,_that.fpx,_that.usBankAccount,_that.multibanco,_that.customerId);case _:
  return orElse();

}
}