UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

17 lines (16 loc) 1.61 kB
/** KEY VALUE TUPLE **/ export declare type IKeyValueTuple<GKey, GValue> = [key: GKey, value: GValue]; export declare type IGenericKeyValueTuple = IKeyValueTuple<any, any>; export declare type IInferKeyValueTupleGKey<GKeyValueTuple extends IGenericKeyValueTuple> = GKeyValueTuple extends IKeyValueTuple<infer GKey, any> ? GKey : never; export declare type ITInferKeyValueTupleGValue<GKeyValueTuple extends IGenericKeyValueTuple> = GKeyValueTuple extends IKeyValueTuple<any, infer GValue> ? GValue : never; /** UNION **/ export declare type IGenericKeyValueTupleUnion = IGenericKeyValueTuple; export declare type IInferKeyValueTupleUnionGKey<GKeyValueTupleUnion extends IGenericKeyValueTupleUnion> = IInferKeyValueTupleGKey<GKeyValueTupleUnion>; export declare type IInferKeyValueTupleUnionGValue<GKeyValueTupleUnion extends IGenericKeyValueTupleUnion> = ITInferKeyValueTupleGValue<GKeyValueTupleUnion>; export declare type IInferKeyValueTupleUnionGValueFromKey<GKeyValueTupleUnion extends IGenericKeyValueTuple, GKey extends IInferKeyValueTupleUnionGKey<GKeyValueTupleUnion>> = GKeyValueTupleUnion extends IKeyValueTuple<GKey, infer GValue> ? GValue : never; export declare type IKeyValueMapToKeyValueTupleUnion<GObject extends object> = { [GKey in Extract<keyof GObject, string>]: IKeyValueTuple<GKey, GObject[GKey]>; }[Extract<keyof GObject, string>]; export declare type IKeyValueTupleUnionToKeyValueMap<GKeyValueTupleUnion extends IGenericKeyValueTuple> = { [GKey in IInferKeyValueTupleUnionGKey<GKeyValueTupleUnion>]: GKeyValueTupleUnion extends IKeyValueTuple<GKey, infer GValue> ? GValue : never; };