when<TResult extends Object?> method
- @optionalTypeArgs
- TResult $default(
- ChatPreference? chat,
- FilterablePreference? follow,
- FilterablePreference? like,
- FilterablePreference? likeViaRepost,
- FilterablePreference? mention,
- FilterablePreference? quote,
- FilterablePreference? reply,
- FilterablePreference? repost,
- FilterablePreference? repostViaRepost,
- Preference? starterpackJoined,
- Preference? subscribedPost,
- Preference? unverified,
- Preference? verified,
- Map<
String, dynamic> ? $unknown,
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(@ChatPreferenceConverter() ChatPreference? chat, @FilterablePreferenceConverter() FilterablePreference? follow, @FilterablePreferenceConverter() FilterablePreference? like, @FilterablePreferenceConverter() FilterablePreference? likeViaRepost, @FilterablePreferenceConverter() FilterablePreference? mention, @FilterablePreferenceConverter() FilterablePreference? quote, @FilterablePreferenceConverter() FilterablePreference? reply, @FilterablePreferenceConverter() FilterablePreference? repost, @FilterablePreferenceConverter() FilterablePreference? repostViaRepost, @PreferenceConverter() Preference? starterpackJoined, @PreferenceConverter() Preference? subscribedPost, @PreferenceConverter() Preference? unverified, @PreferenceConverter() Preference? verified, Map<String, dynamic>? $unknown) $default,) {final _that = this;
switch (_that) {
case _NotificationPutPreferencesV2Input():
return $default(_that.chat,_that.follow,_that.like,_that.likeViaRepost,_that.mention,_that.quote,_that.reply,_that.repost,_that.repostViaRepost,_that.starterpackJoined,_that.subscribedPost,_that.unverified,_that.verified,_that.$unknown);case _:
throw StateError('Unexpected subclass');
}
}