assert-or-return
Version:
Type-safe assertion library with decorator-based early returns for TypeScript
16 lines (15 loc) • 581 B
TypeScript
export type AssertResult<T = never> = {
success: true;
data: T;
} | {
success: false;
error: string;
};
export declare function Ok<T>(data: T): AssertResult<T>;
export declare function Err(error: string): AssertResult;
export declare function assert<T>(value: T, errorMessage: string): asserts value is NonNullable<T>;
interface AssertableMethod {
(...args: any[]): AssertResult<any>;
}
export declare function HasAssertions(): <T extends AssertableMethod>(target: any, propertyName: string | symbol, descriptor: TypedPropertyDescriptor<T>) => void;
export {};