whenOrNull<TResult extends Object?> method
TResult?
whenOrNull<TResult extends Object?>(
- TResult? $default(
- int id,
- @JsonKey.new(name: 'commercial_id') int commercialId,
- String name,
- String description,
- List images,
- List tags,
- @JsonKey.new(name: 'isibook_space_id') int isibookSpaceId,
- @JsonKey.new(name: 'number_of_seats') int numberOfSeats,
- @JsonKey.new(name: 'number_of_reserved') int numberOfReserved,
- @JsonKey.new(name: 'hour_before_late') int hourBeforeLate,
- num price,
- @JsonKey.new(name: 'deleted_at') @TimestampConverter() Jiffy? deletedAt,
- @JsonKey.new(name: 'created_at') @TimestampConverter() Jiffy createdAt,
- @JsonKey.new(name: 'updated_at') @TimestampConverter() Jiffy updatedAt,
- List metadata,
- @JsonKey.new(name: 'order_column') int orderColumn,
- @JsonKey.new(name: 'can_pay_with_points') bool canPayWithPoints,
- @JsonKey.new(name: 'is_discount_active') bool isDiscountActive,
- @JsonKey.new(name: 'cancellation_policy') String cancellationPolicy,
- @JsonKey.new(name: 'date_start') @TimestampConverter() Jiffy dateStart,
- @JsonKey.new(name: 'date_end') @TimestampConverter() Jiffy dateEnd,
- @JsonKey.new(name: 'images_url') List imagesUrl,
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(
int id,
@JsonKey(name: 'commercial_id') int commercialId,
String name,
String description,
List<dynamic> images,
List<dynamic> tags,
@JsonKey(name: 'isibook_space_id') int isibookSpaceId,
@JsonKey(name: 'number_of_seats') int numberOfSeats,
@JsonKey(name: 'number_of_reserved') int numberOfReserved,
@JsonKey(name: 'hour_before_late') int hourBeforeLate,
num price,
@JsonKey(name: 'deleted_at') @TimestampConverter() Jiffy? deletedAt,
@JsonKey(name: 'created_at') @TimestampConverter() Jiffy createdAt,
@JsonKey(name: 'updated_at') @TimestampConverter() Jiffy updatedAt,
List<dynamic> metadata,
@JsonKey(name: 'order_column') int orderColumn,
@JsonKey(name: 'can_pay_with_points') bool canPayWithPoints,
@JsonKey(name: 'is_discount_active') bool isDiscountActive,
@JsonKey(name: 'cancellation_policy') String cancellationPolicy,
@JsonKey(name: 'date_start') @TimestampConverter() Jiffy dateStart,
@JsonKey(name: 'date_end') @TimestampConverter() Jiffy dateEnd,
@JsonKey(name: 'images_url') List<dynamic> imagesUrl)?
$default,
) {
final _that = this;
switch (_that) {
case _IsibookActivity() when $default != null:
return $default(
_that.id,
_that.commercialId,
_that.name,
_that.description,
_that.images,
_that.tags,
_that.isibookSpaceId,
_that.numberOfSeats,
_that.numberOfReserved,
_that.hourBeforeLate,
_that.price,
_that.deletedAt,
_that.createdAt,
_that.updatedAt,
_that.metadata,
_that.orderColumn,
_that.canPayWithPoints,
_that.isDiscountActive,
_that.cancellationPolicy,
_that.dateStart,
_that.dateEnd,
_that.imagesUrl);
case _:
return null;
}
}