///
///
module Rx {
/**
* Supports push-style iteration over an observable sequence.
*/
export interface IObserver {
/**
* Notifies the observer of a new element in the sequence.
* @param {Any} value Next element in the sequence.
*/
onNext(value: T): void;
/**
* Notifies the observer that an exception has occurred.
* @param {Any} error The error that has occurred.
*/
onError(exception: any): void;
/**
* Notifies the observer of the end of the sequence.
*/
onCompleted(): void;
}
export interface Observer {
/**
* Notifies the observer of a new element in the sequence.
* @param {Any} value Next element in the sequence.
*/
onNext(value: T): void;
/**
* Notifies the observer that an exception has occurred.
* @param {Any} error The error that has occurred.
*/
onError(exception: any): void;
/**
* Notifies the observer of the end of the sequence.
*/
onCompleted(): void;
}
export interface ObserverStatic {
/**
* Creates an observer from the specified OnNext, along with optional OnError, and OnCompleted actions.
* @param {Function} [onNext] Observer's OnNext action implementation.
* @param {Function} [onError] Observer's OnError action implementation.
* @param {Function} [onCompleted] Observer's OnCompleted action implementation.
* @returns {Observer} The observer object implemented using the given actions.
*/
create(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observer;
}
/**
* Supports push-style iteration over an observable sequence.
*/
export var Observer: ObserverStatic;
}
(function() {
var iobserver: Rx.IObserver;
var observer: Rx.Observer;
iobserver.onNext(false);
iobserver.onError(new Error('a'));
iobserver.onCompleted();
observer.onNext(false);
observer.onError(new Error('a'));
observer.onCompleted();
var so: Rx.Observer = Rx.Observer.create((v) => 1);
so = Rx.Observer.create((v) => 1, (e) => { });
so = Rx.Observer.create((v) => 1, (e) => { }, () => { });
});