tryToBool static method

bool? tryToBool(
  1. dynamic object, {
  2. dynamic mapKey,
  3. int? listIndex,
})

Attempts to convert an object to a bool, or returns null if the object is null or conversion is not applicable.

  • Returns true if the object is a bool and equal to true.
  • Returns true if the object is a String and equal to 'yes' or 'true' (case-insensitive).
  • Returns null for other types or if the object is null.

object The object to be converted to a bool. mapKey (Optional) Specifies the key to extract values from a Map object. listIndex (Optional) Specifies the index to extract elements from a List object.

Returns a bool if conversion is applicable, otherwise null.

Example usage:

final object1 = true;
final bool1 = ConvertObject.tryToBool(object1); // true

final object2 = 'yes';
final bool2 = ConvertObject.tryToBool(object2); // true

final object3 = 10;
final bool3 = ConvertObject.tryToBool(object3); // null

final object4 = false;
final bool4 = ConvertObject.tryToBool(object4); // false

final object5 = 'no';
final bool5 = ConvertObject.tryToBool(object5); // false

final object6 = null;
final bool6 = ConvertObject.tryToBool(object6); // null

Implementation

static bool? tryToBool(
  dynamic object, {
  dynamic mapKey,
  int? listIndex,
}) {
  if (object == null) {
    return null;
  } else {
    if (mapKey != null && object is Map<dynamic, dynamic>) {
      return (object[mapKey] as Object?).asBool;
    }
    if (listIndex != null && object is List<dynamic>) {
      return (object.of(listIndex) as Object?).asBool;
    }
    return (object as Object?).asBool;
  }
}