Skip to content

tyneq


tyneq / TyneqComparer

Class: TyneqComparer

Defined in: src/core/TyneqComparer.ts:11

Built-in comparers and equality comparers used by ordering and equality operators.

Remarks

All members are static. This class cannot be instantiated.

Methods

defaultComparer()

static defaultComparer<T>(a, b): number

Defined in: src/core/TyneqComparer.ts:22

Natural-order comparer using < and >.

Type Parameters

Type Parameter
T

Parameters

ParameterType
aT
bT

Returns

number

Negative if a < b, positive if a > b, 0 if equal.

Remarks

Works correctly for numbers, strings, dates, and any type that supports the relational operators.


defaultEqualityComparer()

static defaultEqualityComparer<T>(a, b): boolean

Defined in: src/core/TyneqComparer.ts:27

Strict equality comparer using ===.

Type Parameters

Type Parameter
T

Parameters

ParameterType
aT
bT

Returns

boolean


reverse()

static reverse<T>(comparer): Comparer<T>

Defined in: src/core/TyneqComparer.ts:44

Returns a comparer that reverses the order of comparer.

Type Parameters

Type Parameter
T

Parameters

ParameterType
comparerComparer<T>

Returns

Comparer<T>

Remarks

Use this to invert any custom comparer - for example, to sort by a locale-aware comparer in descending order without rewriting it.

Example

ts
const desc = TyneqComparer.reverse(TyneqComparer.createLocaleComparer("en"));
seq.orderBy((s) => s, desc);

createLocaleComparer()

static createLocaleComparer(locale?, options?): Comparer<string>

Defined in: src/core/TyneqComparer.ts:65

Returns a locale-aware string comparer backed by Intl.Collator.

Parameters

ParameterTypeDescription
locale?string | string[]BCP 47 language tag(s) passed to Intl.Collator.
options?CollatorOptionsIntl.CollatorOptions passed to Intl.Collator.

Returns

Comparer<string>

Remarks

Pass a locale and optional options for deterministic cross-environment ordering. Without arguments the comparer uses the runtime locale, which may vary across environments.

Example

ts
seq.orderBy((s) => s, TyneqComparer.createLocaleComparer("en"));

See

caseInsensitiveComparer for a locale-independent case-insensitive ordering comparer.


caseInsensitiveEqualityComparer()

static caseInsensitiveEqualityComparer(a, b): boolean

Defined in: src/core/TyneqComparer.ts:82

Case-insensitive string equality comparer.

Parameters

ParameterType
astring
bstring

Returns

boolean

Remarks

Converts both values to lower-case with toLowerCase() before comparing with ===. Locale-independent: results are consistent across environments.

Use createLocaleComparer with { sensitivity: "base" } for locale-aware case-insensitive equality.

See

caseInsensitiveComparer for the ordering (negative/zero/positive) counterpart.


caseInsensitiveComparer()

static caseInsensitiveComparer(a, b): number

Defined in: src/core/TyneqComparer.ts:105

Case-insensitive ordering comparer.

Parameters

ParameterType
astring
bstring

Returns

number

Remarks

Converts both values to lower-case with toLowerCase() and compares with < / >. Locale-independent: results are consistent across environments and match caseInsensitiveEqualityComparer - strings that compare equal here return true there, and vice versa.

Use createLocaleComparer when you need locale-aware case-insensitive ordering.

Example

ts
seq.orderBy((s) => s, TyneqComparer.caseInsensitiveComparer)

See