@typed/io
Version:
Runtime IO type system
8 lines • 465 B
TypeScript
import { Type } from './Type';
export interface RecursiveType<T extends Type> extends Type<Type.Of<T>, Type.Encoding<T>> {
}
export declare const lazy: <T extends Type<any, any>>(f: () => T) => RecursiveType<T>;
export declare const recursive: <T extends Type<any, any> = Type<any, any>>(f: (type: [T][T extends any ? 0 : never]) => T) => RecursiveType<T>;
declare type NoInfer<T> = [T][T extends any ? 0 : never];
export {};
//# sourceMappingURL=recursive.d.ts.map