JSPM

nesity-types

1.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 17661
  • Score
    100M100P100Q136788F
  • License MIT

Package Exports

  • nesity-types
  • nesity-types/StrictMap
  • nesity-types/StrictMap.typeTest
  • nesity-types/cjs
  • nesity-types/cjs/StrictMap
  • nesity-types/cjs/StrictMap.typeTest
  • nesity-types/cjs/fromEntries
  • nesity-types/cjs/fromEntries.typeTest
  • nesity-types/cjs/fromEntriesLib.d
  • nesity-types/cjs/main
  • nesity-types/cjs/utility
  • nesity-types/esm/StrictMap
  • nesity-types/esm/StrictMap.typeTest
  • nesity-types/esm/fromEntries
  • nesity-types/esm/fromEntries.typeTest
  • nesity-types/esm/fromEntriesLib.d
  • nesity-types/esm/main
  • nesity-types/esm/utility
  • nesity-types/fromEntries
  • nesity-types/fromEntries.typeTest
  • nesity-types/fromEntriesLib.d
  • nesity-types/main
  • nesity-types/package.json
  • nesity-types/utility

Readme

nesity-types

A set of TypeScript utilities that help you write stricter code.

Installation

yarn install nesity-types

Functionality

Enhanced built-in types

The code at runtime is the same as the underlying method, only the types are stricter.

fromEntries

A strict typing of Object.fromEntries (see issue @ TypeScript repo)

import { fromEntries } from 'nesity-types'

const x = fromEntries([['a', 1] as const, ['b', 2] as const] as const)

// note that these values need to be readonly tuples for this to work
// the type of x is now: { a: 1, b: 2 }

If you wish to upgrade the native Object.fromEntries with the stricter version, you can do so by referencing the fromEntriesLib.d.ts file:

/// <reference path="nesity-types/src/fromEntriesLib" />

StrictMap

A strict typing of the built-in Map for cases where a specific Key maps to a specific Value.

import { StrictMap } from 'nesity-types'

// prettier-ignore
type PossibleTuples =
  | ['key', 'value']
  | ['another-key', 'another-value']

const map = new StrictMap<PossibleTuples>()

// valid:
map.set('key', 'value')
map.set('another-key', 'another-value')
map.get('key') // 'value'

// invalid:
map.set('key', 'another-value')
map.set('wrong-key', 'value')
map.set('key', 'wrong-value')
map.get('wrong-key') // undefined

Utility types

  • IsUnion - a type that checks whether a type is a union type
  • IfUnion - a type that returns a different type depending on whether the type is a union type
  • UnionToIntersection - a type that converts a union type to an intersection type
  • InferKeyOptionalityFromTupleType - a type that infers whether a key in a tuple type is optional or not