whenOrNull<TResult extends Object?> method

  1. @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>(
  1. TResult? $default(
    1. String? id,
    2. String? firstName,
    3. String? lastName,
    4. String? email,
    5. int? statusId,
    6. int? departmentId,
    7. int? businessUnitId,
    8. int? positionId,
    9. String? creatorId,
    10. DateTime? createdDate,
    11. String? userRoleId,
    12. double? latitude,
    13. double? longitude,
    14. String? password,
    15. List<String>? roleNames,
    16. int? userStatus,
    17. Department? department,
    18. BusinessUnit? businessUnit,
    19. Position? position,
    20. Status? status,
    21. List<UserRole>? userRoles,
    22. List<Depot>? depots,
    23. List<Status>? statuses,
    )?
)

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( String? id,  String? firstName,  String? lastName,  String? email,  int? statusId,  int? departmentId,  int? businessUnitId,  int? positionId,  String? creatorId,  DateTime? createdDate,  String? userRoleId,  double? latitude,  double? longitude,  String? password,  List<String>? roleNames,  int? userStatus,  Department? department,  BusinessUnit? businessUnit,  Position? position,  Status? status,  List<UserRole>? userRoles,  List<Depot>? depots,  List<Status>? statuses)?  $default,) {final _that = this;
switch (_that) {
case _User() when $default != null:
return $default(_that.id,_that.firstName,_that.lastName,_that.email,_that.statusId,_that.departmentId,_that.businessUnitId,_that.positionId,_that.creatorId,_that.createdDate,_that.userRoleId,_that.latitude,_that.longitude,_that.password,_that.roleNames,_that.userStatus,_that.department,_that.businessUnit,_that.position,_that.status,_that.userRoles,_that.depots,_that.statuses);case _:
  return null;

}
}