when<TResult extends Object?> method
TResult
when<TResult extends Object?>(
- TResult $default(
- String id,
- @JsonKey.new(defaultValue: '') String email,
- String currencyCode,
- @JsonKey.new(defaultValue: '') String customerUrl,
- LineItemsOrder lineItems,
- String name,
- int orderNumber,
- String processedAt,
- ShippingAddress? shippingAddress,
- ShippingAddress? billingAddress,
- String statusUrl,
- @JsonKey.new(fromJson: _priceOrZero) PriceV2 subtotalPrice,
- PriceV2 totalPrice,
- PriceV2 totalShippingPrice,
- @JsonKey.new(fromJson: _priceOrZero) PriceV2 totalTax,
- @JsonKey.new(defaultValue: '') String financialStatus,
- String fulfillmentStatus,
- PriceV2? totalRefunded,
- String? phone,
- String? cursor,
- String? canceledAt,
- String? cancelReason,
- List<
SuccessfulFullfilment> ? successfulFulfillments,
A switch-like method, using callbacks.
As opposed to map, this offers destructuring.
It is equivalent to doing:
switch (sealedClass) {
case Subclass(:final field):
return ...;
case Subclass2(:final field2):
return ...;
}
Implementation
@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( String id, @JsonKey(defaultValue: '') String email, String currencyCode, @JsonKey(defaultValue: '') String customerUrl, LineItemsOrder lineItems, String name, int orderNumber, String processedAt, ShippingAddress? shippingAddress, ShippingAddress? billingAddress, String statusUrl, @JsonKey(fromJson: _priceOrZero) PriceV2 subtotalPrice, PriceV2 totalPrice, PriceV2 totalShippingPrice, @JsonKey(fromJson: _priceOrZero) PriceV2 totalTax, @JsonKey(defaultValue: '') String financialStatus, String fulfillmentStatus, PriceV2? totalRefunded, String? phone, String? cursor, String? canceledAt, String? cancelReason, List<SuccessfulFullfilment>? successfulFulfillments) $default,) {final _that = this;
switch (_that) {
case _Order():
return $default(_that.id,_that.email,_that.currencyCode,_that.customerUrl,_that.lineItems,_that.name,_that.orderNumber,_that.processedAt,_that.shippingAddress,_that.billingAddress,_that.statusUrl,_that.subtotalPrice,_that.totalPrice,_that.totalShippingPrice,_that.totalTax,_that.financialStatus,_that.fulfillmentStatus,_that.totalRefunded,_that.phone,_that.cursor,_that.canceledAt,_that.cancelReason,_that.successfulFulfillments);case _:
throw StateError('Unexpected subclass');
}
}