UNPKG

@awesome-nodes/mvvm

Version:

Application development framework using the *model* *view* *view-model* design pattern.

36 lines (35 loc) 1.46 kB
import { EventDelegate } from "./EventDelegate"; import { ObjectModel } from "./ObjectModel"; /** * Defines a disposable object which provides disposal lifecycle events. */ export interface IDisposable extends ObjectModel { /** * Returns a value indicating if the current object instance has been disposed. */ isDisposed: boolean; /** * Raised on before this instance gets disposed. */ disposing: EventDelegate<IDisposable>; /** * Raised after this instance has been disposed. */ disposed: EventDelegate<IDisposable>; /** * Releases all unmanaged resources of this instance. Please call this method * only without providing the 'disposing' parameter (explained within parameter doc). * Note: When overridden within an implementing class then call the dispose method of * the superclass always at least (after all own disposal logic has been processed). * @param {boolean} disposing Note: This parameter is for internal usage only and used within derived * implementations to indicate if a regular disposal is in progress prior object finalization. */ dispose(disposing?: boolean): void; } /** * Disposable context definition statement markup for IDisposable implementations. * @param {T} resource * @param {(resource: T) => void} func * @template T */ export declare function using<T extends IDisposable>(resource: T, func: (resource: T) => void): void;