whenOrNull<TResult extends Object?> method
TResult?
whenOrNull<TResult extends Object?>({})
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 label, String amount, bool? isPending)? immediate,TResult? Function( String label, String amount, int deferredDate)? deferred,TResult? Function( String label, String amount, ApplePayIntervalUnit intervalUnit, int intervalCount, int? startDate, int? endDate)? recurring,}) {final _that = this;
switch (_that) {
case ImmediateCartSummaryItem() when immediate != null:
return immediate(_that.label,_that.amount,_that.isPending);case DeferredSummaryItem() when deferred != null:
return deferred(_that.label,_that.amount,_that.deferredDate);case RecurringCartSummaryItem() when recurring != null:
return recurring(_that.label,_that.amount,_that.intervalUnit,_that.intervalCount,_that.startDate,_that.endDate);case _:
return null;
}
}