vasille
Version:
The first Developer eXperience Orientated front-end framework (core library).
30 lines (29 loc) • 674 B
TypeScript
import { IValue } from "../core/ivalue.js";
/**
* Declares a notifiable value
* @class Reference
* @extends IValue
*/
export declare class Reference<T> extends IValue<T> {
/**
* The encapsulated value
* @type {*}
*/
protected state: T;
/**
* Array of handlers
* @type {Set}
* @readonly
*/
protected readonly onChange: Set<(value: T) => void>;
/**
* @param value {any} the initial value
*/
constructor(value: T);
get $(): T;
set $(value: T);
on(handler: (value: T) => void): void;
off(handler: (value: T) => void): void;
destroy(): void;
protected updateDeps(value: T): void;
}