Skip to content

Boolean

Works with TypeScript boolean values.

This module exposes the native Boolean constructor together with helpers for checking values, choosing between lazy branches, combining booleans with logical operations, checking collections with every or some, ordering booleans, and reducing boolean values.

17 exports Added in v2.0.0 Source

Combinators

and

Added in v2.0.0 Source

Combines two booleans using logical AND: self && that.

When to use

Use to require both boolean operands to be true.

Details

Supports both data-first and data-last forms.

Signature

declare const and: {
  (that: boolean): (self: boolean) => boolean;
  (self: boolean, that: boolean): boolean;
};

eqv

Added in v2.0.0 Source

Combines two booleans using EQV (aka XNOR): !xor(self, that).

When to use

Use to accept when both boolean operands have the same truth value.

Signature

declare const eqv: {
  (that: boolean): (self: boolean) => boolean;
  (self: boolean, that: boolean): boolean;
};

implies

Added in v2.0.0 Source

Combines two booleans using an implication: (!self || that).

When to use

Use to model logical implication between a condition and a consequence.

Signature

declare const implies: {
  (that: boolean): (self: boolean) => boolean;
  (self: boolean, that: boolean): boolean;
};

nand

Added in v2.0.0 Source

Combines two booleans using NAND: !(self && that).

When to use

Use to negate a logical AND result.

Signature

declare const nand: {
  (that: boolean): (self: boolean) => boolean;
  (self: boolean, that: boolean): boolean;
};

nor

Added in v2.0.0 Source

Combines two booleans using NOR: !(self || that).

When to use

Use to accept only when both boolean operands are false.

Signature

declare const nor: {
  (that: boolean): (self: boolean) => boolean;
  (self: boolean, that: boolean): boolean;
};

not

Added in v2.0.0 Source

Negates the given boolean: !self

When to use

Use to invert a boolean value.

Signature

declare function not(self: boolean): boolean;

or

Added in v2.0.0 Source

Combines two booleans using OR: self || that.

When to use

Use to accept when either boolean operand is true.

Signature

declare const or: {
  (that: boolean): (self: boolean) => boolean;
  (self: boolean, that: boolean): boolean;
};

xor

Added in v2.0.0 Source

Combines two booleans using XOR: (!self && that) || (self && !that).

When to use

Use to accept when exactly one boolean operand is true.

Signature

declare const xor: {
  (that: boolean): (self: boolean) => boolean;
  (self: boolean, that: boolean): boolean;
};

Constructors

Boolean

Added in v4.0.0 Source

Exposes the global boolean constructor for JavaScript truthiness coercion.

When to use

Use to access native JavaScript truthiness coercion from the Effect module namespace.

Gotchas

This follows native truthiness rules. For example, non-empty strings such as "false" coerce to true.

Signature

declare const Boolean: BooleanConstructor;

Guards

isBoolean

Added in v2.0.0 Source

Checks whether a value is a boolean.

When to use

Use to validate unknown input and narrow it to boolean.

Signature

declare const isBoolean: (input: unknown) => input is boolean;

Instances

Equivalence

Added in v2.0.0 Source

Equivalence instance for booleans using strict equality (===).

When to use

Use when checking boolean equality through APIs that accept an equivalence relation.

Signature

declare const Equivalence: Equ.Equivalence<boolean>;

Order

Added in v2.0.0 Source

Provides an Order instance for boolean that allows comparing and sorting boolean values. In this ordering, false is considered less than true.

When to use

Use when you need to sort or compare boolean values through APIs that accept an ordering instance where false comes before true.

Signature

declare const Order: order.Order<boolean>;

Math

ReducerAnd

Added in v4.0.0 Source

Reducer for combining booleans using AND.

When to use

Use to require every accumulated boolean to be true through APIs that consume a Reducer.

Details

The initialValue is true, so combineAll([]) returns true.

Gotchas

combineAll uses the default left-to-right Reducer.make fold and does not short-circuit on false.

See

  • ReducerOr for reducing with OR semantics
  • every for checking an iterable directly

Signature

declare const ReducerAnd: Reducer.Reducer<boolean>;

ReducerOr

Added in v4.0.0 Source

Reducer for combining booleans using OR.

When to use

Use to reduce boolean values where the result should be true if any combined value is true.

Details

The initialValue is false.

See

  • ReducerAnd for reducing with AND semantics
  • some for checking an iterable directly

Signature

declare const ReducerOr: Reducer.Reducer<boolean>;

Pattern Matching

match

Added in v2.0.0 Source

Chooses between two lazy branches based on a boolean value.

When to use

Use to choose between two lazy branches based on a boolean value.

Signature

declare const match: {
  <A, B = A>(options: {
    readonly onFalse: LazyArg<A>;
    readonly onTrue: LazyArg<B>;
  }): (value: boolean) => A | B;
  <A, B>(
    value: boolean,
    options: {
      readonly onFalse: LazyArg<A>;
      readonly onTrue: LazyArg<B>;
    },
  ): A | B;
};

Predicates

every

Added in v2.0.0 Source

Checks whether every boolean in a collection is true.

When to use

Use to check that every boolean in an iterable is true.

See

  • some for checking whether at least one value is true
  • ReducerAnd for reducing booleans with AND through a Reducer

Signature

declare function every(collection: Iterable<boolean>): boolean;

some

Added in v2.0.0 Source

Checks whether at least one boolean in a collection is true.

When to use

Use to check that at least one boolean in an iterable is true.

See

  • every for checking whether all values are true
  • ReducerOr for reducing booleans with OR through a Reducer

Signature

declare function some(collection: Iterable<boolean>): boolean;