jaywalk
Version:
Runtime type validation
24 lines (23 loc) • 800 B
TypeScript
import { Rule } from './rule';
import { Any, AnyOptions } from './any';
import { Context, Ref } from '../utils';
export interface ObjectOptions extends AnyOptions {
minKeys?: number | Ref;
maxKeys?: number | Ref;
properties?: ObjectProperties;
propertyTypes?: ObjectPropertyTypes;
}
export interface ObjectProperties {
[key: string]: Rule;
}
export declare type ObjectPropertyTypes = Array<[Rule, Rule]>;
export declare class Object extends Any implements ObjectOptions {
type: string;
minKeys: number | Ref;
maxKeys: number | Ref;
properties: ObjectProperties;
propertyTypes: ObjectPropertyTypes;
constructor(options: ObjectOptions);
_isType(value: any, path: string[], context: Context): number;
_extend(options: ObjectOptions): ObjectOptions;
}