/** * * 监视对象变化 * * */ type objectOperation = 'add' | 'update' | 'remove'; interface ObjectWatcherOptions { on: objectOperation | objectOperation[]; } interface ObjectWatcherModifyParams { propKey: string | symbol; value: any; oldValue?: any; operate?: objectOperation; parent?: object; } type ObjectModifyObserver = (params: ObjectWatcherModifyParams) => void; declare function objectWatcher(obj: T, callback: ObjectModifyObserver, options?: ObjectWatcherOptions): T; export { type ObjectModifyObserver, type ObjectWatcherModifyParams, type ObjectWatcherOptions, type objectOperation, objectWatcher };