mobx
Version:
Simple, scalable state management.
43 lines (42 loc) • 1.42 kB
TypeScript
import { IEnhancer, IInterceptor, Lambda } from "../internal";
export interface IObservableArray<T = any> extends Array<T> {
spliceWithArray(index: number, deleteCount?: number, newItems?: T[]): T[];
observe(listener: (changeData: IArrayChange<T> | IArraySplice<T>) => void, fireImmediately?: boolean): Lambda;
intercept(handler: IInterceptor<IArrayWillChange<T> | IArrayWillSplice<T>>): Lambda;
clear(): T[];
replace(newItems: T[]): T[];
remove(value: T): boolean;
toJS(): T[];
toJSON(): T[];
}
export interface IArrayChange<T = any> {
type: "update";
object: IObservableArray<T>;
index: number;
newValue: T;
oldValue: T;
}
export interface IArraySplice<T = any> {
type: "splice";
object: IObservableArray<T>;
index: number;
added: T[];
addedCount: number;
removed: T[];
removedCount: number;
}
export interface IArrayWillChange<T = any> {
type: "update";
object: IObservableArray<T>;
index: number;
newValue: T;
}
export interface IArrayWillSplice<T = any> {
type: "splice";
object: IObservableArray<T>;
index: number;
added: T[];
removedCount: number;
}
export declare function createObservableArray<T>(initialValues: any[] | undefined, enhancer: IEnhancer<T>, name?: string, owned?: boolean): IObservableArray<T>;
export declare function isObservableArray(thing: any): thing is IObservableArray<any>;