check-if-an-object-is-truthy-in-dart

star 49

Learn how to extend Dart's functionality to implement JavaScript-style "truthy" checks for easier conditional logic and value evaluations.

rodydavis By rodydavis schedule Updated 2/3/2026

name: check-if-an-object-is-truthy-in-dart description: Learn how to extend Dart's functionality to implement JavaScript-style "truthy" checks for easier conditional logic and value evaluations. metadata: url: https://rodydavis.com/posts/dart/truthy last_modified: Tue, 03 Feb 2026 20:04:34 GMT

Check if an Object is Truthy in Dart

If you are coming from language like JavaScript you may be used to checking if an object is truthy.

if (true)
if ({})
if ([])
if (42)
if ("0")
if ("false")
if (new Date())
if (-42)
if (12n)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)

In Dart you need to explicitly check if an object is not null, true/false or determine if the value is true based on the type.

It is possible however to use Dart extensions to add the truthy capability.

extension on Object? {
  bool get isTruthy => truthy(this);
}

bool truthy(Object? val) {
  if (val == null) return false;
  if (val is bool) return val;
  if (val is num && val == 0) return false;
  if (val is String && (val == 'false' || val == '')) return false;
  if (val is Iterable && val.isEmpty) return false;
  if (val is Map && val.isEmpty) return false;
  return true;
}

This will now make it possible for any object to be evaluated as a truthy value in if statements or value assignments.

Prints the following:

(null, false)
(, false)
(false, false)
(true, true)
(0, false)
(1, true)
(false, false)
(true, true)
([], false)
([1, 2, 3], true)
({}, false)
({1, 2, 3}, true)
({a: 1, b: 2}, true)

Demo

Install via CLI
npx skills add https://github.com/rodydavis/skills --skill check-if-an-object-is-truthy-in-dart
Repository Details
star Stars 49
call_split Forks 5
navigation Branch main
article Path SKILL.md
More from Creator