/// /// module Rx { export interface Observable { /** * Creates a pattern that matches when both observable sequences have an available value. * * @param right Observable sequence to match with the current sequence. * @return {Pattern} Pattern object that matches when both observable sequences have an available value. */ and(right: Observable): Pattern2; } } (function() { var r: Rx.Observable; interface A { } var a: Rx.Observable; interface B { } var b: Rx.Observable; interface C { } var c: Rx.Observable; var n: Rx.Observable = Rx.Observable.when( r.and(a).and(b).and(c).thenDo((r, a, b, c) => { return 123; }) ); });