mapOrNull<TResult extends Object?> method
- @optionalTypeArgs
- TResult? user(
- MessageOriginUser value
- TResult? chat(
- MessageOriginChat value
- TResult? channel(
- MessageOriginChannel value
A variant of map that fallback to returning null.
It is equivalent to doing:
switch (sealedClass) {
case final Subclass value:
return ...;
case _:
return null;
}
Implementation
@optionalTypeArgs
TResult? mapOrNull<TResult extends Object?>({
TResult? Function(MessageOriginUser value)? user,
TResult? Function(MessageOriginHiddenUser value)? hiddenUser,
TResult? Function(MessageOriginChat value)? chat,
TResult? Function(MessageOriginChannel value)? channel,
}) {
final _that = this;
switch (_that) {
case MessageOriginUser() when user != null:
return user(_that);
case MessageOriginHiddenUser() when hiddenUser != null:
return hiddenUser(_that);
case MessageOriginChat() when chat != null:
return chat(_that);
case MessageOriginChannel() when channel != null:
return channel(_that);
case _:
return null;
}
}