/// /// module Rx { export interface Observable { /** * Comonadic bind operator. * @param {Function} selector A transform function to apply to each element. * @param {Object} scheduler Scheduler used to execute the operation. If not specified, defaults to the ImmediateScheduler. * @returns {Observable} An observable sequence which results from the comonadic bind operation. */ manySelect(selector: _Selector, TResult>, scheduler?: IScheduler): Observable; /** * Comonadic bind operator. * @param {Function} selector A transform function to apply to each element. * @param {Object} scheduler Scheduler used to execute the operation. If not specified, defaults to the ImmediateScheduler. * @returns {Observable} An observable sequence which results from the comonadic bind operation. */ extend(selector: _Selector, TResult>, scheduler?: IScheduler): Observable; } } (function() { var o: Rx.Observable; var oo: Rx.Observable> = o.extend(x => x.first()); var oo: Rx.Observable> = o.manySelect(x => x.first()); });