semantic-analysis
Version:
Extensible semantic Structured Data analysis library for Microdata and JSON-LD
11 lines (10 loc) • 517 B
TypeScript
declare type Filter<T> = (value: Readonly<T[keyof T]>, key: Readonly<keyof T>, self: Readonly<T>) => boolean;
declare type Filtered<T, F extends Filter<T>> = ReturnType<F> extends true ? T : ReturnType<F> extends false ? Object : Partial<T>;
/**
* Filters desired properties out of the object
*
* @param object Input object
* @param callback Filter callback function
*/
export declare function filter<T extends object, F extends Filter<T> = Filter<T>>(object: T, callback: Filter<T>): Filtered<T, F>;
export {};