whenOrNull<TResult extends Object?> method

  1. @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({
  1. TResult? card(
    1. PaymentMethodData paymentMethodData
    )?,
  2. TResult? cardFromToken(
    1. PaymentMethodDataCardFromToken paymentMethodData
    )?,
  3. TResult? cardFromMethodId(
    1. PaymentMethodDataCardFromMethod paymentMethodData
    )?,
  4. TResult? alipay(
    1. PaymentMethodData paymentMethodData
    )?,
  5. TResult? ideal(
    1. PaymentMethodDataIdeal paymentMethodData
    )?,
  6. TResult? aubecs(
    1. PaymentMethodDataAubecs paymentMethodData
    )?,
  7. TResult? bancontact(
    1. PaymentMethodData paymentMethodData
    )?,
  8. TResult? giroPay(
    1. PaymentMethodData paymentMethodData
    )?,
  9. TResult? eps(
    1. PaymentMethodData paymentMethodData
    )?,
  10. TResult? affirm(
    1. PaymentMethodData paymentMethodData
    )?,
  11. TResult? grabPay(
    1. PaymentMethodData paymentMethodData
    )?,
  12. TResult? p24(
    1. PaymentMethodData paymentMethodData
    )?,
  13. TResult? fpx(
    1. PaymentMethodDataFpx paymentMethodData
    )?,
  14. TResult? sepaDebit(
    1. PaymentMethodDataSepa paymentMethodData
    )?,
  15. TResult? afterpayClearpay(
    1. PaymentMethodDataAfterPay paymentMethodData
    )?,
  16. TResult? oxxo(
    1. PaymentMethodData paymentMethodData
    )?,
  17. TResult? klarna(
    1. PaymentMethodData paymentMethodData
    )?,
  18. TResult? payPal(
    1. PaymentMethodData paymentMethodData
    )?,
  19. TResult? usBankAccount(
    1. PaymentMethodDataUsBank paymentMethodData
    )?,
})

A variant of when that fallback to returning null

It is equivalent to doing:

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

Implementation

@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>({TResult? Function( PaymentMethodData paymentMethodData)?  card,TResult? Function( PaymentMethodDataCardFromToken paymentMethodData)?  cardFromToken,TResult? Function( PaymentMethodDataCardFromMethod paymentMethodData)?  cardFromMethodId,TResult? Function( PaymentMethodData paymentMethodData)?  alipay,TResult? Function( PaymentMethodDataIdeal paymentMethodData)?  ideal,TResult? Function( PaymentMethodDataAubecs paymentMethodData)?  aubecs,TResult? Function( PaymentMethodData paymentMethodData)?  bancontact,TResult? Function( PaymentMethodData paymentMethodData)?  giroPay,TResult? Function( PaymentMethodData paymentMethodData)?  eps,TResult? Function( PaymentMethodData paymentMethodData)?  affirm,TResult? Function( PaymentMethodData paymentMethodData)?  grabPay,TResult? Function( PaymentMethodData paymentMethodData)?  p24,TResult? Function( PaymentMethodDataFpx paymentMethodData)?  fpx,TResult? Function( PaymentMethodDataSepa paymentMethodData)?  sepaDebit,TResult? Function( PaymentMethodDataAfterPay paymentMethodData)?  afterpayClearpay,TResult? Function( PaymentMethodData paymentMethodData)?  oxxo,TResult? Function( PaymentMethodData paymentMethodData)?  klarna,TResult? Function( PaymentMethodData paymentMethodData)?  payPal,TResult? Function( PaymentMethodDataUsBank paymentMethodData)?  usBankAccount,}) {final _that = this;
switch (_that) {
case _PaymentMethodParamsCard() when card != null:
return card(_that.paymentMethodData);case _PaymentMethodParamsCardWithToken() when cardFromToken != null:
return cardFromToken(_that.paymentMethodData);case _PaymentMethodParamsCardWithMethodId() when cardFromMethodId != null:
return cardFromMethodId(_that.paymentMethodData);case _PaymentMethodParamsAlipay() when alipay != null:
return alipay(_that.paymentMethodData);case _PaymentMethodParamsIdeal() when ideal != null:
return ideal(_that.paymentMethodData);case _PaymentMethodParamsAubecs() when aubecs != null:
return aubecs(_that.paymentMethodData);case _PaymentMethodParamsBankContact() when bancontact != null:
return bancontact(_that.paymentMethodData);case _PaymentMethodParamsGiroPay() when giroPay != null:
return giroPay(_that.paymentMethodData);case _PaymentMethodParamsEps() when eps != null:
return eps(_that.paymentMethodData);case _PaymentMethodParamsAffirm() when affirm != null:
return affirm(_that.paymentMethodData);case _PaymentMethodParamsPay() when grabPay != null:
return grabPay(_that.paymentMethodData);case _PaymentMethodParamsP24() when p24 != null:
return p24(_that.paymentMethodData);case _PaymentMethodParamsFpx() when fpx != null:
return fpx(_that.paymentMethodData);case _PaymentMethodParamsSepaDebit() when sepaDebit != null:
return sepaDebit(_that.paymentMethodData);case _PaymentMethodParamsAfterpayClearpay() when afterpayClearpay != null:
return afterpayClearpay(_that.paymentMethodData);case _PaymentMethodParamsOxxo() when oxxo != null:
return oxxo(_that.paymentMethodData);case _PaymentMethodParamsKlarna() when klarna != null:
return klarna(_that.paymentMethodData);case _PaymentMethodParamsPayPal() when payPal != null:
return payPal(_that.paymentMethodData);case _PaymentMethodParamsUsBankAccount() when usBankAccount != null:
return usBankAccount(_that.paymentMethodData);case _:
  return null;

}
}