rxdeep
Version:
RxJS deep state management
18 lines (17 loc) • 573 B
TypeScript
export declare type ChangeTraceLeaf<T> = {
from: T | undefined;
to: T | undefined;
};
export declare type ChangeTraceNode<T> = {
subs: (T extends any[] ? {
[index: number]: ChangeTrace<T[number]>;
} : Partial<{
[K in keyof T]: ChangeTrace<T[K]>;
}>) | {};
};
export declare type ChangeTrace<T> = ChangeTraceLeaf<T> | ChangeTraceNode<T>;
export interface Change<T> {
value: T | undefined;
trace?: ChangeTrace<T> | undefined;
}
export declare function isLeaf<T>(c: ChangeTrace<T> | undefined): c is ChangeTraceLeaf<T> | undefined;