@itrocks/class-type
Version:
Helper types and functions to identify, validate, and manipulate classes, objects, prototypes and their properties
18 lines (17 loc) • 1.28 kB
TypeScript
export type AnyObject = Record<string, any>;
export type KeyOf<T> = Extract<keyof T, string>;
export type ObjectOrType<T extends object = object> = T | Type<T>;
export type StringObject = Record<string, string>;
export type Type<T extends object = object> = new (...args: any[]) => T;
export declare function addReservedClassNames(...classNames: string[]): void;
export declare let baseType: <T extends object>(target: Type<T>) => Type<T>;
export declare function inherits<T extends object, S extends object>(type: Type<S | T>, superType: Type<S>): type is Type<S & T>;
export declare function isAnyFunction(value: any): value is Function;
export declare function isAnyFunctionOrType(value: any): value is Function | Type;
export declare function isAnyObject<T extends object = object>(value: any): value is T;
export declare function isAnyType(value: any): value is Type;
export declare function isObject<T extends object>(target: ObjectOrType<T>): target is T;
export declare function isType<T extends object>(target: ObjectOrType<T>): target is Type<T>;
export declare function prototypeOf<T extends object>(target: ObjectOrType<T>): T;
export declare function typeIdentifier(type: Type): symbol;
export declare function typeOf<T extends object>(target: ObjectOrType<T>): Type<T>;