Hyperlinkv0.8.0-beta.28

Equivalence

Equivalence.strictEqualconsteffect/Equivalence.ts:199
<A>(): Equivalence<A>

Creates an equivalence relation that uses strict equality (===) to compare values.

When to use

Use when you need strict equality (===) as the comparison.

Details

Uses JavaScript's strict equality operator (===). Primitives compare by value. Objects compare by reference, so only the same object instance is equivalent. Use this as a building block for more complex equivalences via mapInput or combine.

Gotchas

NaN !== NaN, so NaN values are never considered equivalent.

Example (Comparing primitive types)

import { Equivalence } from "effect"

const strictEq = Equivalence.strictEqual<number>()

console.log(strictEq(1, 1)) // true
console.log(strictEq(1, 2)) // false
console.log(strictEq(NaN, NaN)) // false (NaN !== NaN)

Example (Comparing objects by reference)

import { Equivalence } from "effect"

const obj = { value: 42 }
const strictObjEq = Equivalence.strictEqual<typeof obj>()

console.log(strictObjEq(obj, obj)) // true
console.log(strictObjEq(obj, { value: 42 })) // false (different references)
constructorsmake
export const strictEqual: <A>() => Equivalence<A> = () => isStrictEquivalent
Referenced by 1 symbols