typescript-observable
Adds classes and interfaces to make Typescript classes observable.
Installation
With npm
npm install --save typescript-observable
Observable
A class for observable objects.
on(type : string | string[], callback : (data : any) => void | IObserver) : { cancel : Function }
Adds the observercallback
to the eventtype
. The returned object has a functioncancel
that removes the listener.off(observer : IObserver) : boolean
Removes the observer. Only works if the bound observer is of typeIObserver
. Returnstrue
if the removal was successful, otherwise false.count() : number
Counts the number of observers.clear() : void
Removes all observers.notify(event : IObservableEvent, data : any) : void
Notifies all the observers listening to theIObservableEvent
or any of its parents. The parameterdata
is passed to the observers.
ChangeObservable
extends Observable
A subclass of Observable
that tracks changes.
hasChanged() : boolean
Check if the object has changed.setChanged() : void
Set that the object has changed.clearChanged
IObservableEvent
An interface for events.
parent : IObservableEvent
Observers that observe the parent event will also be notified. Can benull
.name : string
Name of the event.
IObserver
An interface that defines an observer.
update(data : any, name?: string) : void
Called when the observers are notified.
Example
The class to be observed can be extended with Observable
childEvent : IObservableEvent =; ; // Called on rootEvent and childEventtestObservable.on'root',; // Called on childEventtestObservable.on'child',; testObservable.foo;/** * Prints: * root observer, rootEvent was called, root */ testObservable.bar;/* * Prints: * root observer, childEvent was called, child * child observer, childEvent was called, child */
Contribute
Make sure to run the tests
npm test