map<TResult extends Object?> method

  1. @optionalTypeArgs
TResult map<TResult extends Object?>({
  1. required TResult preview(
    1. PaidMediaPreview value
    ),
  2. required TResult photo(
    1. PaidMediaPhoto value
    ),
  3. required TResult video(
    1. PaidMediaVideo value
    ),
  4. required TResult livePhoto(
    1. PaidMediaLivePhoto value
    ),
})

A switch-like method, using callbacks.

Callbacks receives the raw object, upcasted. It is equivalent to doing:

switch (sealedClass) {
  case final Subclass value:
    return ...;
  case final Subclass2 value:
    return ...;
}

Implementation

@optionalTypeArgs
TResult map<TResult extends Object?>({
  required TResult Function(PaidMediaPreview value) preview,
  required TResult Function(PaidMediaPhoto value) photo,
  required TResult Function(PaidMediaVideo value) video,
  required TResult Function(PaidMediaLivePhoto value) livePhoto,
}) {
  final _that = this;
  switch (_that) {
    case PaidMediaPreview():
      return preview(_that);
    case PaidMediaPhoto():
      return photo(_that);
    case PaidMediaVideo():
      return video(_that);
    case PaidMediaLivePhoto():
      return livePhoto(_that);
  }
}