Boolean
This module provides utility functions and type class instances for working with the boolean type in TypeScript. It includes functions for basic boolean operations, as well as type class instances for Equivalence and Order.
Combinators
Signature
declare const and: {
(that: boolean): (self: boolean) => boolean;
(self: boolean, that: boolean): boolean;
};Example
import * as assert from "node:assert"
import { and } from "effect/Boolean"
assert.deepStrictEqual(and(true, true), true)
assert.deepStrictEqual(and(true, false), false)
assert.deepStrictEqual(and(false, true), false)
assert.deepStrictEqual(and(false, false), false)Combines two booleans using EQV (aka XNOR): !xor(self, that).
Signature
declare const eqv: {
(that: boolean): (self: boolean) => boolean;
(self: boolean, that: boolean): boolean;
};Example
import * as assert from "node:assert"
import { eqv } from "effect/Boolean"
assert.deepStrictEqual(eqv(true, true), true)
assert.deepStrictEqual(eqv(true, false), false)
assert.deepStrictEqual(eqv(false, true), false)
assert.deepStrictEqual(eqv(false, false), true)Combines two booleans using an implication: (!self || that).
Signature
declare const implies: {
(that: boolean): (self: boolean) => boolean;
(self: boolean, that: boolean): boolean;
};Example
import * as assert from "node:assert"
import { implies } from "effect/Boolean"
assert.deepStrictEqual(implies(true, true), true)
assert.deepStrictEqual(implies(true, false), false)
assert.deepStrictEqual(implies(false, true), true)
assert.deepStrictEqual(implies(false, false), true)Combines two boolean using NAND: !(self && that).
Signature
declare const nand: {
(that: boolean): (self: boolean) => boolean;
(self: boolean, that: boolean): boolean;
};Example
import * as assert from "node:assert"
import { nand } from "effect/Boolean"
assert.deepStrictEqual(nand(true, true), false)
assert.deepStrictEqual(nand(true, false), true)
assert.deepStrictEqual(nand(false, true), true)
assert.deepStrictEqual(nand(false, false), true)Combines two booleans using NOR: !(self || that).
Signature
declare const nor: {
(that: boolean): (self: boolean) => boolean;
(self: boolean, that: boolean): boolean;
};Example
import * as assert from "node:assert"
import { nor } from "effect/Boolean"
assert.deepStrictEqual(nor(true, true), false)
assert.deepStrictEqual(nor(true, false), false)
assert.deepStrictEqual(nor(false, true), false)
assert.deepStrictEqual(nor(false, false), true)Negates the given boolean: !self
Signature
declare function not(self: boolean): boolean;Combines two boolean using OR: self || that.
Signature
declare const or: {
(that: boolean): (self: boolean) => boolean;
(self: boolean, that: boolean): boolean;
};Example
import * as assert from "node:assert"
import { or } from "effect/Boolean"
assert.deepStrictEqual(or(true, true), true)
assert.deepStrictEqual(or(true, false), true)
assert.deepStrictEqual(or(false, true), true)
assert.deepStrictEqual(or(false, false), false)Combines two booleans using XOR: (!self && that) || (self && !that).
Signature
declare const xor: {
(that: boolean): (self: boolean) => boolean;
(self: boolean, that: boolean): boolean;
};Example
import * as assert from "node:assert"
import { xor } from "effect/Boolean"
assert.deepStrictEqual(xor(true, true), false)
assert.deepStrictEqual(xor(true, false), true)
assert.deepStrictEqual(xor(false, true), true)
assert.deepStrictEqual(xor(false, false), false)Guards
Tests if a value is a boolean.
Signature
declare const isBoolean: (input: unknown) => input is boolean;Example
import * as assert from "node:assert"
import { isBoolean } from "effect/Boolean"
assert.deepStrictEqual(isBoolean(true), true)
assert.deepStrictEqual(isBoolean("true"), false)Instances
Equivalence
Signature
declare const Equivalence: equivalence.Equivalence<boolean>;Signature
declare const Order: order.Order<boolean>;Other
This utility function is used to check if all the elements in a collection of boolean values are true.
Signature
declare function every(collection: Iterable<boolean>): boolean;This utility function is used to check if at least one of the elements in a collection of boolean values is true.
Signature
declare function some(collection: Iterable<boolean>): boolean;Pattern Matching
This function returns the result of either of the given functions depending on the value of the boolean parameter. It is useful when you have to run one of two functions depending on the 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;
};Example
import * as assert from "node:assert"
import { Boolean } from "effect"
assert.deepStrictEqual(
Boolean.match(true, { onFalse: () => "It's false!", onTrue: () => "It's true!" }),
"It's true!",
)
Combines two boolean using AND:
self && that.