whenOrNull<TResult extends Object?> method

  1. @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({
  1. TResult? adultContentPref(
    1. AdultContentPref data
    )?,
  2. TResult? contentLabelPref(
    1. ContentLabelPref data
    )?,
  3. TResult? savedFeedsPref(
    1. SavedFeedsPref data
    )?,
  4. TResult? savedFeedsPrefV2(
    1. SavedFeedsPrefV2 data
    )?,
  5. TResult? personalDetailsPref(
    1. PersonalDetailsPref data
    )?,
  6. TResult? feedViewPref(
    1. FeedViewPref data
    )?,
  7. TResult? threadViewPref(
    1. ThreadViewPref data
    )?,
  8. TResult? interestsPref(
    1. InterestsPref data
    )?,
  9. TResult? mutedWordsPref(
    1. MutedWordsPref data
    )?,
  10. TResult? hiddenPostsPref(
    1. HiddenPostsPref data
    )?,
  11. TResult? bskyAppStatePref(
    1. BskyAppStatePref data
    )?,
  12. TResult? labelersPref(
    1. LabelersPref data
    )?,
  13. TResult? postInteractionSettingsPref(
    1. PostInteractionSettingsPref data
    )?,
  14. TResult? verificationPrefs(
    1. VerificationPrefs data
    )?,
  15. TResult? unknown(
    1. Map<String, dynamic> data
    )?,
})

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( AdultContentPref data)?  adultContentPref,TResult? Function( ContentLabelPref data)?  contentLabelPref,TResult? Function( SavedFeedsPref data)?  savedFeedsPref,TResult? Function( SavedFeedsPrefV2 data)?  savedFeedsPrefV2,TResult? Function( PersonalDetailsPref data)?  personalDetailsPref,TResult? Function( FeedViewPref data)?  feedViewPref,TResult? Function( ThreadViewPref data)?  threadViewPref,TResult? Function( InterestsPref data)?  interestsPref,TResult? Function( MutedWordsPref data)?  mutedWordsPref,TResult? Function( HiddenPostsPref data)?  hiddenPostsPref,TResult? Function( BskyAppStatePref data)?  bskyAppStatePref,TResult? Function( LabelersPref data)?  labelersPref,TResult? Function( PostInteractionSettingsPref data)?  postInteractionSettingsPref,TResult? Function( VerificationPrefs data)?  verificationPrefs,TResult? Function( Map<String, dynamic> data)?  unknown,}) {final _that = this;
switch (_that) {
case UPreferencesAdultContentPref() when adultContentPref != null:
return adultContentPref(_that.data);case UPreferencesContentLabelPref() when contentLabelPref != null:
return contentLabelPref(_that.data);case UPreferencesSavedFeedsPref() when savedFeedsPref != null:
return savedFeedsPref(_that.data);case UPreferencesSavedFeedsPrefV2() when savedFeedsPrefV2 != null:
return savedFeedsPrefV2(_that.data);case UPreferencesPersonalDetailsPref() when personalDetailsPref != null:
return personalDetailsPref(_that.data);case UPreferencesFeedViewPref() when feedViewPref != null:
return feedViewPref(_that.data);case UPreferencesThreadViewPref() when threadViewPref != null:
return threadViewPref(_that.data);case UPreferencesInterestsPref() when interestsPref != null:
return interestsPref(_that.data);case UPreferencesMutedWordsPref() when mutedWordsPref != null:
return mutedWordsPref(_that.data);case UPreferencesHiddenPostsPref() when hiddenPostsPref != null:
return hiddenPostsPref(_that.data);case UPreferencesBskyAppStatePref() when bskyAppStatePref != null:
return bskyAppStatePref(_that.data);case UPreferencesLabelersPref() when labelersPref != null:
return labelersPref(_that.data);case UPreferencesPostInteractionSettingsPref() when postInteractionSettingsPref != null:
return postInteractionSettingsPref(_that.data);case UPreferencesVerificationPrefs() when verificationPrefs != null:
return verificationPrefs(_that.data);case UPreferencesUnknown() when unknown != null:
return unknown(_that.data);case _:
  return null;

}
}