Neotype Extensions
Default implementations for Neotype equivalence relations, total orders, and semigroups for built-in JavaScript objects
Features
Neotype Extensions provides default implementations for the Neotype Eq
, Ord
,
and Semigroup
interfaces for built-in JavaScript objects and their
corresponding TypeScript definitions, including:
- Primitives:
boolean
,number
,bigint
,string
, andsymbol
- Generic containers:
-
Array
andReadonlyArray
- Tuple literals and
readonly
tuple literals -
Set
andReadonlySet
-
Map
andReadonlyMap
-
- Dates, Promises, and Functions
- Typed arrays
The specific implementations are as follows:
Type | Eq |
Ord |
Semigroup |
---|---|---|---|
Array |
|||
BigInt |
|||
BigInt64Array |
|||
BigUint64Array |
|||
Boolean |
|||
Date |
|||
Float32Array |
|||
Float64Array |
|||
Function |
|||
Int8Array |
|||
Int16Array |
|||
Int32Array |
|||
Map |
|||
Number |
|||
Promise |
|||
readonly tuple literal |
|||
ReadonlyArray |
|||
ReadonlyMap |
|||
ReadonlySet |
|||
Set |
|||
String |
|||
Symbol |
|||
tuple literal | |||
Uint8Array |
|||
Uint8ClampedArray |
|||
Uint16Array |
|||
Uint32Array |
Install
Neotype Extensions is available on NPM.
npm install @neotype/extensions
Working with modules
This library provides a suite of ES6 modules. A .js
suffix is required in
all import statements. There are no exports. When imported, each module will
augment a global object.
import "@neotype/extensions/number.js";
import "@neotype/extensions/string.js";
import "@neotype/extensions/boolean.js";
import "@neotype/extensions/promise.js";
// etc.
See each module's documentation for recommended import practices.