mapOrNull<TResult extends Object?> method

  1. @optionalTypeArgs
TResult? mapOrNull<TResult extends Object?>({
  1. TResult? unknown(
    1. Unknown value
    )?,
  2. TResult? video(
    1. Video value
    )?,
  3. TResult? image(
    1. Image value
    )?,
  4. TResult? vr(
    1. Model3D value
    )?,
  5. TResult? audio(
    1. Audio value
    )?,
  6. TResult? html(
    1. Html 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( Unknown value)?  unknown,TResult? Function( Video value)?  video,TResult? Function( Image value)?  image,TResult? Function( Model3D value)?  vr,TResult? Function( Audio value)?  audio,TResult? Function( Html value)?  html,}){
final _that = this;
switch (_that) {
case Unknown() when unknown != null:
return unknown(_that);case Video() when video != null:
return video(_that);case Image() when image != null:
return image(_that);case Model3D() when vr != null:
return vr(_that);case Audio() when audio != null:
return audio(_that);case Html() when html != null:
return html(_that);case _:
  return null;

}
}