whenOrNull<TResult extends Object?> method

  1. @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>(
  1. TResult? $default(
    1. String? getepayTxnId,
    2. String? mid,
    3. String? txnAmount,
    4. String? txnStatus,
    5. String? merchantOrderNo,
    6. String? udf1,
    7. String? udf2,
    8. String? udf3,
    9. String? udf4,
    10. String? udf5,
    11. String? udf6,
    12. String? udf7,
    13. String? udf8,
    14. String? udf9,
    15. String? udf10,
    16. String? udf41,
    17. String? custRefNo,
    18. String? paymentMode,
    19. String? currency,
    20. String? discriminator,
    21. String? message,
    22. String? paymentStatus,
    23. DateTime? txnDate,
    24. String? surcharge,
    25. String? totalAmount,
    26. String? settlementAmount,
    27. String? settlementRefNo,
    28. String? settlementDate,
    29. String? txnNote,
    )?
)

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( String? getepayTxnId,  String? mid,  String? txnAmount,  String? txnStatus,  String? merchantOrderNo,  String? udf1,  String? udf2,  String? udf3,  String? udf4,  String? udf5,  String? udf6,  String? udf7,  String? udf8,  String? udf9,  String? udf10,  String? udf41,  String? custRefNo,  String? paymentMode,  String? currency,  String? discriminator,  String? message,  String? paymentStatus,  DateTime? txnDate,  String? surcharge,  String? totalAmount,  String? settlementAmount,  String? settlementRefNo,  String? settlementDate,  String? txnNote)?  $default,) {final _that = this;
switch (_that) {
case _PgInvoiceResponse() when $default != null:
return $default(_that.getepayTxnId,_that.mid,_that.txnAmount,_that.txnStatus,_that.merchantOrderNo,_that.udf1,_that.udf2,_that.udf3,_that.udf4,_that.udf5,_that.udf6,_that.udf7,_that.udf8,_that.udf9,_that.udf10,_that.udf41,_that.custRefNo,_that.paymentMode,_that.currency,_that.discriminator,_that.message,_that.paymentStatus,_that.txnDate,_that.surcharge,_that.totalAmount,_that.settlementAmount,_that.settlementRefNo,_that.settlementDate,_that.txnNote);case _:
  return null;

}
}