@coderspirit/nominal-inputs
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

@coderspirit/nominal-inputs

NPM version TypeScript License npm downloads

Nominal-Inputs is an extension for Nominal.

Install instructions

Node

# With NPM
npm install @coderspirit/nominal-inputs

# Or with PNPM
pnpm add --save-dev @coderspirit/nominal-inputs

# Or with Yarn:
yarn add --dev @coderspirit/nominal-inputs

Input Types

Input types are specifically designed to be used for function parameters, and we have to use them in a very specific way. Examples below.

IntegerInput<N>

import type { IntegerInput } from '@coderspirit/nominal-inputs'

// Notice how we have to declare a generic type parameter in order to use
// `IntegerInput`
function onlyAcceptsIntegers<N extends number>(n: IntegerInput<N>): number {
  return n
}

// Using the function
onlyAcceptsIntegers(42) // All good :D
onlyAcceptsIntegers(0.5) // Type Error!

Other Input types

  • NegativeInput<N>
  • NegativeIntegerInput<N>
  • PositiveInput<N>
  • PositiveIntegerInput<N>

Tagged Types

The tagged types introduced by this package are not "special" as the previously referred "input types", but they rely on the powerful features of Nominal.

Use them to track properties that you already verified either statically or at runtime, so you can avoid having to check them again.

  • TaggedFloat<N>
  • TaggedInteger<N>
  • TaggedNegative<N>
  • TaggedNegativeFloat<N>
  • TaggedNegativeInteger<N>
  • TaggedPositive<N>
  • TaggedPositiveFloat<N>
  • TaggedPositiveIntegger<N>

Package Sidebar

Install

npm i @coderspirit/nominal-inputs

Weekly Downloads

29

Version

1.1.1

License

MIT

Unpacked Size

8.21 kB

Total Files

8

Last publish

Collaborators

  • castarco