@activejs/core
Version:
Pragmatic, Reactive State Management for JavaScript Apps
24 lines (23 loc) • 785 B
TypeScript
import { Observable, Subject } from 'rxjs';
/**
* @internal please do not use.
* A prototype-free keyof alternative.
* Works for object, array, string, number and boolean.
*/
export declare type KOf<T, K extends keyof T = keyof T> = T extends Array<any> | string ? Extract<K, number> : T extends number | boolean ? never : K;
/**
* @internal please do not use.
*/
export declare type ExtractObservableType<T> = T extends Observable<infer X> ? X : never;
/**
* @internal please do not use.
*/
export declare type RemapObservablesToSubjects<T, K extends keyof T = keyof T> = {
[key in K]: Subject<ExtractObservableType<T[key]>>;
};
/**
* @internal please do not use.
*/
export declare type KeyValToKeyValProducer<T> = {
[key in keyof T]: (...args: any[]) => T[key];
};