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()
staticdefaultComparer<T>(a,b):number
Defined in: src/core/TyneqComparer.ts:22
Natural-order comparer using < and >.
Type Parameters
| Type Parameter |
|---|
T |
Parameters
| Parameter | Type |
|---|---|
a | T |
b | T |
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()
staticdefaultEqualityComparer<T>(a,b):boolean
Defined in: src/core/TyneqComparer.ts:27
Strict equality comparer using ===.
Type Parameters
| Type Parameter |
|---|
T |
Parameters
| Parameter | Type |
|---|---|
a | T |
b | T |
Returns
boolean
reverse()
staticreverse<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
| Parameter | Type |
|---|---|
comparer | Comparer<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
const desc = TyneqComparer.reverse(TyneqComparer.createLocaleComparer("en"));
seq.orderBy((s) => s, desc);createLocaleComparer()
staticcreateLocaleComparer(locale?,options?):Comparer<string>
Defined in: src/core/TyneqComparer.ts:65
Returns a locale-aware string comparer backed by Intl.Collator.
Parameters
| Parameter | Type | Description |
|---|---|---|
locale? | string | string[] | BCP 47 language tag(s) passed to Intl.Collator. |
options? | CollatorOptions | Intl.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
seq.orderBy((s) => s, TyneqComparer.createLocaleComparer("en"));See
caseInsensitiveComparer for a locale-independent case-insensitive ordering comparer.
caseInsensitiveEqualityComparer()
staticcaseInsensitiveEqualityComparer(a,b):boolean
Defined in: src/core/TyneqComparer.ts:82
Case-insensitive string equality comparer.
Parameters
| Parameter | Type |
|---|---|
a | string |
b | string |
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()
staticcaseInsensitiveComparer(a,b):number
Defined in: src/core/TyneqComparer.ts:105
Case-insensitive ordering comparer.
Parameters
| Parameter | Type |
|---|---|
a | string |
b | string |
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
seq.orderBy((s) => s, TyneqComparer.caseInsensitiveComparer)See
- caseInsensitiveEqualityComparer for the boolean equality counterpart.
- createLocaleComparer for locale-aware ordering.