import { Observable, of } from 'rxjs'; import { zip } from 'rxjs/operators'; it('should support rest parameter observables', () => { const o = of(1); // $ExpectType Observable const z = [of(2)]; // $ExpectType Observable[] const a = o.pipe(zip(...z)); // $ExpectType Observable<{}> }); it('should support rest parameter observables with type parameters', () => { const o = of(1); // $ExpectType Observable const z = [of(2)]; // $ExpectType Observable[] const a = o.pipe(zip(...z)); // $ExpectType Observable }); it('should support projected rest parameter observables', () => { const o = of(1); // $ExpectType Observable const z = [of(2)]; // $ExpectType Observable[] const a = o.pipe(zip(...z, (...r) => r.map(v => v.toString()))); // $ExpectType Observable }); it('should support projected rest parameter observables with type parameters', () => { const o = of(1); // $ExpectType Observable const z = [of(2)]; // $ExpectType Observable[] const a = o.pipe(zip(...z, (...r) => r.map(v => v.toString()))); // $ExpectType Observable }); it('should support projected arrays of observables', () => { const o = of(1); // $ExpectType Observable const z = [of(2)]; // $ExpectType Observable[] const a = o.pipe(zip(z, (...r: any[]) => r.map(v => v.toString()))); // $ExpectType Observable }); it('should support projected arrays of observables with type parameters', () => { const o = of(1); // $ExpectType Observable const z = [of(2)]; // $ExpectType Observable[] const a = o.pipe(zip(z, (...r: any[]) => r.map(v => v.toString()))); // $ExpectType Observable });