whenOrNull<TResult extends Object?> method
TResult?
whenOrNull<TResult extends Object?>(
- TResult? $default(
- String? id,
- Name? username,
- PhoneNumber? primaryPhoneNumber,
- EmailAddress? primaryEmailAddress,
- List<
PhoneNumber> ? secondaryPhoneNumbers, - List<
EmailAddress> ? secondaryEmailAddresses, - bool? termsAccepted,
- bool? suspended,
- String? photoUploadID,
- List<
Cover?> ? covers, - BioData? userBioData,
- Address? homeAddress,
- Address? workAddress,
- String? referralLink,
- Assistant? assistant,
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(
@JsonKey(name: 'id') String? id,
@JsonKey(name: 'userName') Name? username,
@JsonKey(name: 'primaryPhone') PhoneNumber? primaryPhoneNumber,
@JsonKey(name: 'primaryEmailAddress')
EmailAddress? primaryEmailAddress,
@JsonKey(name: 'secondaryPhoneNumbers')
List<PhoneNumber>? secondaryPhoneNumbers,
@JsonKey(name: 'secondaryEmailAddresses')
List<EmailAddress>? secondaryEmailAddresses,
@JsonKey(name: 'terms_accepted') bool? termsAccepted,
@JsonKey(name: 'suspended') bool? suspended,
@JsonKey(name: 'photoUploadID') String? photoUploadID,
@JsonKey(name: 'covers') List<Cover?>? covers,
@JsonKey(name: 'userBioData') BioData? userBioData,
@JsonKey(name: 'homeAddress') Address? homeAddress,
@JsonKey(name: 'workAddress') Address? workAddress,
@JsonKey(name: 'referralLink') String? referralLink,
@JsonKey(name: 'assistant', unknownEnumValue: Assistant.BEV)
Assistant? assistant)?
$default,
) {
final _that = this;
switch (_that) {
case _UserProfile() when $default != null:
return $default(
_that.id,
_that.username,
_that.primaryPhoneNumber,
_that.primaryEmailAddress,
_that.secondaryPhoneNumbers,
_that.secondaryEmailAddresses,
_that.termsAccepted,
_that.suspended,
_that.photoUploadID,
_that.covers,
_that.userBioData,
_that.homeAddress,
_that.workAddress,
_that.referralLink,
_that.assistant);
case _:
return null;
}
}