Equality
Equality:
object
Defined in: Core/Equality.ts:14
Type Declaration
Section titled “Type Declaration”and: <
A>(other) => (equality) =>Equality<A>
Combines two equalities with logical AND. Both must pass for two values to be considered equal. Data-last: the first equality is the data being piped.
Type Parameters
Section titled “Type Parameters”A
Parameters
Section titled “Parameters”Equality<A>
Returns
Section titled “Returns”(equality) => Equality<A>
- Equality.by to project equality checks onto specific fields.
- Equality.struct for record-wide structural equality.
Example
Section titled “Example”array: <
A>(itemEquality) =>Equality<readonlyA[]>
Lifts an element equality into an array equality. Two arrays are equal if they have the
same length and every element pair is equal under itemEquality.
Type Parameters
Section titled “Type Parameters”A
Parameters
Section titled “Parameters”itemEquality
Section titled “itemEquality”Equality<A>
Returns
Section titled “Returns”Equality<readonly A[]>
Equality.tuple for fixed-length positional array equality.
Example
Section titled “Example”boolean
Section titled “boolean”boolean:
Equality<boolean> =booleanEq
Equality for booleans.
Equality.string for primitive string equality.
Example
Section titled “Example”by: <
A,B>(extract) => (equality) =>Equality<B>
Adapts an equality for type A into an equality for type B by extracting a field.
Read as “equality by this field”: pipe(Equality.string, Equality.by(u => u.name)).
Type Parameters
Section titled “Type Parameters”A
B
Parameters
Section titled “Parameters”extract
Section titled “extract”(value) => A
Returns
Section titled “Returns”(equality) => Equality<B>
- Equality.and to combine multiple equality checks.
- Equality.struct to check equality across multiple record fields.
Example
Section titled “Example”date:
Equality<Date> =dateEq
Equality for Date values. Compares by numeric time value.
Equality.number for numeric value equality.
Example
Section titled “Example”number
Section titled “number”number:
Equality<number> =numberEq
Equality for numbers. Uses strict equality.
Equality.date for chronological timestamp equality.
Example
Section titled “Example”string
Section titled “string”string:
Equality<string> =stringEq
Equality for strings. Case-sensitive.
Equality.by to adapt equality checks to object properties.
Example
Section titled “Example”struct
Section titled “struct”struct: <
R>(fields) =>Equality<R>
Derives deep equality for a record from field-level Equality checkers.
Type Parameters
Section titled “Type Parameters”R extends Record<string, unknown>
Parameters
Section titled “Parameters”fields
Section titled “fields”{ [K in string | number | symbol]: Equality<R[K]> }
Returns
Section titled “Returns”Equality<R>
- Equality.tuple for positional tuple equality.
- Equality.by to compare single record fields.
Example
Section titled “Example”tuple: <
T>(…equalities) =>Equality<T>
Derives element-wise equality for a tuple from positional Equality checkers.
Type Parameters
Section titled “Type Parameters”T extends readonly unknown[]
Parameters
Section titled “Parameters”equalities
Section titled “equalities”…{ [K in string | number | symbol]: Equality<T[K]> }
Returns
Section titled “Returns”Equality<T>
- Equality.struct for record structural equality.
- Equality.array for variable-length collection equality.