whenOrNull<TResult extends Object?> method

  1. @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({
  1. TResult? cancel(
    1. @igFreezedJson Object? error,
    2. @igFreezedJson RequestOptions? options
    )?,
  2. TResult? connectionTimeout()?,
  3. TResult? sendTimeout()?,
  4. TResult? receiveTimeout()?,
  5. TResult? badCertificate()?,
  6. TResult? connectionError()?,
  7. TResult? badResponse(
    1. @igFreezedJson Response? response,
    2. int? statusCode
    )?,
  8. TResult? businessException(
    1. String message,
    2. @igFreezedJson Object? error,
    3. @igFreezedJson StackTrace? stackTrace
    )?,
})

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(@igFreezedJson  Object? error, @igFreezedJson  RequestOptions? options)?  cancel,TResult? Function()?  connectionTimeout,TResult? Function()?  sendTimeout,TResult? Function()?  receiveTimeout,TResult? Function()?  badCertificate,TResult? Function()?  connectionError,TResult? Function(@igFreezedJson  Response<dynamic>? response,  int? statusCode)?  badResponse,TResult? Function( String message, @igFreezedJson  Object? error, @igFreezedJson  StackTrace? stackTrace)?  businessException,}) {final _that = this;
switch (_that) {
case BaseApiCancelException() when cancel != null:
return cancel(_that.error,_that.options);case BaseApiConnectionTimeoutException() when connectionTimeout != null:
return connectionTimeout();case BaseApiSendTimeoutException() when sendTimeout != null:
return sendTimeout();case BaseApiReceiveTimeoutException() when receiveTimeout != null:
return receiveTimeout();case BaseApiBadCertificateException() when badCertificate != null:
return badCertificate();case BaseApiConnectionErrorException() when connectionError != null:
return connectionError();case BaseApiBadResponseException() when badResponse != null:
return badResponse(_that.response,_that.statusCode);case BaseApiBusinessException() when businessException != null:
return businessException(_that.message,_that.error,_that.stackTrace);case _:
  return null;

}
}