0.2.2 • Published 2 years ago

typelevel-assert v0.2.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

npm version build Gitpod ready-to-code

<TypeLevel> Assert provides convenient assertions for type-level programming.

Usage

Installation

npm i -D typelevel-assert

Start to code (try it out)

import { assertType, Is } from 'typelevel-assert';

type Hi<T extends string> = `Hi ${T}!`;

assertType<Is<Hi<'TypeLevel'>, 'Hi TypeLevel!'>>();

API

The assertType<T>() assertion accepts a type parameter T.

  • ✅ The compiler succeeds, if T is true
  • ❌ The compiler fails, if T is not true

<TypeLevel> Assert has the following built-in type predicates that can be used with assertType:

typedescription
And<C1 extends boolean, C extends boolean2>true if both C1 and C2 are true, false otherwise
Or<C1 extends boolean, C2 extends boolean>true if any of C1 or C2 is true, false otherwise
Not<C extends boolean>true if C is false, true otherwise
Equals<T1, T2>And<Extends<T1, T2>, Extends<T2, T1>>
Extends<T1, T2>syntactic sugar for [T1] extends [T2] ? true : false
Is<T1, T2>true if T1 is exactly T2, false otherwise