typelevel-assert
v0.2.2
Published
Convenient assertions for typelevel programming.
Downloads
15
Maintainers
Readme
<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
istrue
- ❌ The compiler fails, if
T
is nottrue
<TypeLevel> Assert has the following built-in type predicates that can be used with assertType
:
| type | description |
| --- | --- |
| 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 |