@shedevro/assert
Version:
Assertion typescript library for better, comfortable and safe coding. See readme!
46 lines (45 loc) • 2.3 kB
TypeScript
declare namespace Types {
type One<T extends boolean = boolean> = T;
type OneNullable<T extends boolean = boolean> = One<T> | null;
type Array<T extends boolean = boolean> = One<T>[];
type ArrayNullable<T extends boolean = boolean> = Array<T> | null;
}
declare namespace Boolean {
type AssertsTemplate<R> = {
boolean(value: unknown, message?: string): asserts value is R;
};
type ValueIsTemplate<R> = {
boolean(value: unknown): value is R;
};
}
declare namespace True {
type AssertsTemplate<R> = {
true(value: unknown, message?: string): asserts value is R;
};
type ValueIsTemplate<R> = {
true(value: unknown): value is R;
};
}
declare namespace False {
type AssertsTemplate<R> = {
false(value: unknown, message?: string): asserts value is R;
};
type ValueIsTemplate<R> = {
false(value: unknown): value is R;
};
}
export declare namespace BooleanFunctions {
namespace Asserts {
type One = Boolean.AssertsTemplate<Types.One> & True.AssertsTemplate<Types.One<true>> & False.AssertsTemplate<Types.One<false>>;
type OneNullable = Boolean.AssertsTemplate<Types.OneNullable> & True.AssertsTemplate<Types.OneNullable<true>> & False.AssertsTemplate<Types.OneNullable<false>>;
type Array = Boolean.AssertsTemplate<Types.Array> & True.AssertsTemplate<Types.Array<true>> & False.AssertsTemplate<Types.Array<false>>;
type ArrayNullable = Boolean.AssertsTemplate<Types.ArrayNullable> & True.AssertsTemplate<Types.ArrayNullable<true>> & False.AssertsTemplate<Types.ArrayNullable<false>>;
}
namespace ValueIs {
type One = Boolean.ValueIsTemplate<Types.One> & True.ValueIsTemplate<Types.One<true>> & False.ValueIsTemplate<Types.One<false>>;
type OneNullable = Boolean.ValueIsTemplate<Types.OneNullable> & True.ValueIsTemplate<Types.OneNullable<true>> & False.ValueIsTemplate<Types.OneNullable<false>>;
type Array = Boolean.ValueIsTemplate<Types.Array> & True.ValueIsTemplate<Types.Array<true>> & False.ValueIsTemplate<Types.Array<false>>;
type ArrayNullable = Boolean.ValueIsTemplate<Types.ArrayNullable> & True.ValueIsTemplate<Types.ArrayNullable<true>> & False.ValueIsTemplate<Types.ArrayNullable<false>>;
}
}
export {};