UNPKG

@final-hill/decorator-contracts

Version:

Code Contracts for TypeScript and ECMAScript classes

6 lines (5 loc) 511 B
import { Contracted } from './Contracted.mjs'; export type InvariantPredicate<Class extends typeof Contracted> = (self: InstanceType<Class>) => boolean; export type InvariantDecorator = <Class extends typeof Contracted>(predicate: InvariantPredicate<Class>) => (value: Class, context: ClassDecoratorContext<Class>) => Class | void; export declare function assertInvariants<C extends typeof Contracted, T extends InstanceType<C>>(Class: C, instance: T): void; export declare const invariant: InvariantDecorator;