variable-type
Version:
Runtime type checking for variable and similar objects.
35 lines (34 loc) • 1.1 kB
TypeScript
/**
* Created by hustcc on 17/08/01.
*
* 👏 08-01 is my birthday on ID card.
*/
import Type, { TypeChecker } from './Type';
declare type TypeTransformer = (type: Type) => Type;
declare type TypeCombiner = (types: Type[]) => Type;
declare type TypeGenerator = (toCheck: any) => Type;
declare type EnumValidator = (toCheck: any[]) => Type;
export declare type VariableType = {
readonly undefined: Type;
readonly bool: Type;
readonly func: Type;
readonly number: Type;
readonly string: Type;
readonly null: Type;
readonly object: Type;
readonly array: Type;
readonly any: Type;
readonly and: TypeCombiner;
readonly or: TypeCombiner;
readonly not: TypeTransformer;
readonly instanceOf: TypeGenerator;
readonly typeOf: TypeGenerator;
readonly in: EnumValidator;
readonly oneOf: EnumValidator;
readonly oneOfType: TypeCombiner;
readonly arrayOf: TypeTransformer;
readonly shape: (typeShape: Record<string, Type>) => Type;
readonly apply: (func: TypeChecker) => Type;
};
declare const VT: VariableType;
export default VT;