bool.hasEnvironment constructor Null safety

const bool.hasEnvironment(
  1. String name

Whether there is an environment declaration name.

Returns true iff there is an environment declaration with the name name If there is then the value of that declaration can be accessed using const String.fromEnvironment(name). Otherwise, String.fromEnvironment(name, defaultValue: someString) will evaluate to the given defaultValue.

This constructor can be used to handle an absent declaration specifically, in ways that cannot be represented by providing a default value to the C.fromEnvironment constructor where C is String, int, or bool.


const loggingIsDeclared = const bool.hasEnvironment("logging");

const String? logger = loggingIsDeclared
    ? String.fromEnvironment("logging")
    : null;


// The .hasEnvironment() constructor is special in that we do not want
// users to call them using "new". We prohibit that by giving them bodies
// that throw, even though const constructors are not allowed to have bodies.
// Disable those static errors.
//ignore: const_constructor_with_body
//ignore: const_factory
external const factory bool.hasEnvironment(String name);