<TypeLevel> Assert provides convenient assertions for type-level programming.
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!'>>();
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 |