Skip to content

Commit 671627f

Browse files
feat(typings): updated typings for combineAll, mergeAll, concatAll, switch, exhaust, zipAll
this adds support for nested observables using some of the newest features of the TypeScript compiler. Also updated tests in related areas
1 parent 4a86541 commit 671627f

38 files changed

+1184
-741
lines changed

spec/observables/combineLatest-spec.ts

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,18 @@ describe('Observable.combineLatest', () => {
1515
const expected = '----uv--wx-y--z----|';
1616

1717
const combined = Observable.combineLatest(firstSource, secondSource,
18-
(a: any, b: any) => '' + a + b);
18+
(a, b) => '' + a + b);
1919

2020
expectObservable(combined).toBe(expected, {u: 'ad', v: 'ae', w: 'af', x: 'bf', y: 'bg', z: 'cg'});
2121
});
2222

23-
it('should combine an immediately-scheduled source with an immediately-scheduled second', (done: MochaDone) => {
23+
it('should combine an immediately-scheduled source with an immediately-scheduled second', (done) => {
2424
const a = Observable.of<number>(1, 2, 3, queueScheduler);
2525
const b = Observable.of<number>(4, 5, 6, 7, 8, queueScheduler);
2626
const r = [[1, 4], [2, 4], [2, 5], [3, 5], [3, 6], [3, 7], [3, 8]];
2727

2828
//type definition need to be updated
29-
Observable.combineLatest(a, b, queueScheduler).subscribe((vals: any) => {
29+
Observable.combineLatest(a, b, queueScheduler).subscribe((vals) => {
3030
expect(vals).to.deep.equal(r.shift());
3131
}, (x) => {
3232
done(new Error('should not be called'));
@@ -42,7 +42,7 @@ describe('Observable.combineLatest', () => {
4242
const expected = '----uv--wx-y--z----|';
4343

4444
const combined = Observable.combineLatest([firstSource, secondSource],
45-
(a: any, b: any) => '' + a + b);
45+
(a: string, b: string) => '' + a + b);
4646

4747
expectObservable(combined).toBe(expected, {u: 'ad', v: 'ae', w: 'af', x: 'bf', y: 'bg', z: 'cg'});
4848
});
@@ -54,7 +54,7 @@ describe('Observable.combineLatest', () => {
5454
const e2subs = '^';
5555
const expected = '-';
5656

57-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
57+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
5858

5959
expectObservable(result).toBe(expected);
6060
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -68,7 +68,7 @@ describe('Observable.combineLatest', () => {
6868
const e2subs = '(^!)';
6969
const expected = '-';
7070

71-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
71+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
7272

7373
expectObservable(result).toBe(expected);
7474
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -82,7 +82,7 @@ describe('Observable.combineLatest', () => {
8282
const e2subs = '^';
8383
const expected = '-';
8484

85-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
85+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
8686

8787
expectObservable(result).toBe(expected);
8888
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -96,7 +96,7 @@ describe('Observable.combineLatest', () => {
9696
const e2subs = '(^!)';
9797
const expected = '|';
9898

99-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
99+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
100100

101101
expectObservable(result).toBe(expected);
102102
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -116,7 +116,7 @@ describe('Observable.combineLatest', () => {
116116
const e2subs = '^ !';
117117
const expected = '----|';
118118

119-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
119+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
120120

121121
expectObservable(result).toBe(expected, values);
122122
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -133,7 +133,7 @@ describe('Observable.combineLatest', () => {
133133
const e2subs = '^ !';
134134
const expected = '----|';
135135

136-
const result = Observable.combineLatest(e2, e1, (x: any, y: any) => x + y);
136+
const result = Observable.combineLatest(e2, e1, (x, y) => x + y);
137137

138138
expectObservable(result).toBe(expected, values);
139139
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -150,7 +150,7 @@ describe('Observable.combineLatest', () => {
150150
const e2subs = '^ ';
151151
const expected = '-'; //never
152152

153-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
153+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
154154

155155
expectObservable(result).toBe(expected, values);
156156
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -167,7 +167,7 @@ describe('Observable.combineLatest', () => {
167167
const e2subs = '^ !';
168168
const expected = '-----'; //never
169169

170-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
170+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
171171

172172
expectObservable(result).toBe(expected, values);
173173
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -181,7 +181,7 @@ describe('Observable.combineLatest', () => {
181181
const e2subs = '^ !';
182182
const expected = '----x-yz--|';
183183

184-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
184+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
185185

186186
expectObservable(result).toBe(expected, { x: 'bf', y: 'cf', z: 'cg' });
187187
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -195,7 +195,7 @@ describe('Observable.combineLatest', () => {
195195
const e2subs = '^ !';
196196
const expected = '------#';
197197

198-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
198+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
199199

200200
expectObservable(result).toBe(expected, null, 'shazbot!');
201201
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -209,7 +209,7 @@ describe('Observable.combineLatest', () => {
209209
const e2subs = '^ !';
210210
const expected = '----#';
211211

212-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
212+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
213213

214214
expectObservable(result).toBe(expected, null, 'too bad, honk');
215215
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -223,7 +223,7 @@ describe('Observable.combineLatest', () => {
223223
const e2subs = '^ !';
224224
const expected = '--#';
225225

226-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
226+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
227227

228228
expectObservable(result).toBe(expected, null, 'bazinga');
229229
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -237,7 +237,7 @@ describe('Observable.combineLatest', () => {
237237
const e2subs = '^ !';
238238
const expected = '--#';
239239

240-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
240+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
241241

242242
expectObservable(result).toBe(expected, null, 'bazinga');
243243
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -251,7 +251,7 @@ describe('Observable.combineLatest', () => {
251251
const e2subs = '^ !';
252252
const expected = '--#';
253253

254-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
254+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
255255

256256
expectObservable(result).toBe(expected, null, 'bazinga');
257257
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -265,7 +265,7 @@ describe('Observable.combineLatest', () => {
265265
const e2subs = '^ !';
266266
const expected = '--#';
267267

268-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
268+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
269269

270270
expectObservable(result).toBe(expected, null, 'flurp');
271271
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -279,7 +279,7 @@ describe('Observable.combineLatest', () => {
279279
const e2subs = '^ !';
280280
const expected = '--#';
281281

282-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
282+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
283283

284284
expectObservable(result).toBe(expected, null, 'flurp');
285285
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -293,7 +293,7 @@ describe('Observable.combineLatest', () => {
293293
const e2subs = '^ !';
294294
const expected = '------#';
295295

296-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
296+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
297297

298298
expectObservable(result).toBe(expected, null, 'wokka wokka');
299299
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -307,7 +307,7 @@ describe('Observable.combineLatest', () => {
307307
const e2subs = '^ !';
308308
const expected = '-----#';
309309

310-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
310+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
311311

312312
expectObservable(result).toBe(expected, null, 'wokka wokka');
313313
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -321,7 +321,7 @@ describe('Observable.combineLatest', () => {
321321
const e2subs = '^ !';
322322
const expected = '---#';
323323

324-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
324+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
325325

326326
expectObservable(result).toBe(expected, { a: 1, b: 2}, 'wokka wokka');
327327
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -335,7 +335,7 @@ describe('Observable.combineLatest', () => {
335335
const e2subs = '^ !';
336336
const expected = '---#';
337337

338-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
338+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
339339

340340
expectObservable(result).toBe(expected, { a: 1, b: 2}, 'wokka wokka');
341341
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -349,7 +349,7 @@ describe('Observable.combineLatest', () => {
349349
const rightSubs = '^ !';
350350
const expected = '---------#';
351351

352-
const result = Observable.combineLatest(left, right, (x: any, y: any) => x + y);
352+
const result = Observable.combineLatest(left, right, (x, y) => x + y);
353353

354354
expectObservable(result).toBe(expected, null, 'bad things');
355355
expectSubscriptions(left.subscriptions).toBe(leftSubs);
@@ -363,7 +363,7 @@ describe('Observable.combineLatest', () => {
363363
const rightSubs = '^ !';
364364
const expected = '---------#';
365365

366-
const result = Observable.combineLatest(left, right, (x: any, y: any) => x + y);
366+
const result = Observable.combineLatest(left, right, (x, y) => x + y);
367367

368368
expectObservable(result).toBe(expected, null, 'bad things');
369369
expectSubscriptions(left.subscriptions).toBe(leftSubs);
@@ -377,7 +377,7 @@ describe('Observable.combineLatest', () => {
377377
const e2subs = '^ !';
378378
const expected = '-----x-y-z--|';
379379

380-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
380+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
381381

382382
expectObservable(result).toBe(expected, { x: 'be', y: 'ce', z: 'cf' });
383383
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -391,7 +391,7 @@ describe('Observable.combineLatest', () => {
391391
const e2subs = '^ !';
392392
const expected = '-----------x--y--z--|';
393393

394-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
394+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
395395

396396
expectObservable(result).toBe(expected, { x: 'cd', y: 'ce', z: 'cf' });
397397
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -405,7 +405,7 @@ describe('Observable.combineLatest', () => {
405405
const rightSubs = '^ !';
406406
const expected = '---------#';
407407

408-
const result = Observable.combineLatest(left, right, (x: any, y: any) => x + y);
408+
const result = Observable.combineLatest(left, right, (x, y) => x + y);
409409

410410
expectObservable(result).toBe(expected, null, 'jenga');
411411
expectSubscriptions(left.subscriptions).toBe(leftSubs);
@@ -419,7 +419,7 @@ describe('Observable.combineLatest', () => {
419419
const rightSubs = '^ !';
420420
const expected = '-----------x--y--z--#';
421421

422-
const result = Observable.combineLatest(left, right, (x: any, y: any) => x + y);
422+
const result = Observable.combineLatest(left, right, (x, y) => x + y);
423423

424424
expectObservable(result).toBe(expected, { x: 'cd', y: 'ce', z: 'cf' }, 'dun dun dun');
425425
expectSubscriptions(left.subscriptions).toBe(leftSubs);
@@ -433,7 +433,7 @@ describe('Observable.combineLatest', () => {
433433
const e2subs = '^ !';
434434
const expected = '---#';
435435

436-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => { throw 'ha ha ' + x + ', ' + y; });
436+
const result = Observable.combineLatest(e1, e2, (x, y) => { throw 'ha ha ' + x + ', ' + y; });
437437

438438
expectObservable(result).toBe(expected, null, 'ha ha 2, 4');
439439
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -449,7 +449,7 @@ describe('Observable.combineLatest', () => {
449449
const unsub = ' ! ';
450450
const values = { x: 'bf', y: 'cf', z: 'cg' };
451451

452-
const result = Observable.combineLatest(e1, e2, (x: any, y: any) => x + y);
452+
const result = Observable.combineLatest(e1, e2, (x, y) => x + y);
453453

454454
expectObservable(result, unsub).toBe(expected, values);
455455
expectSubscriptions(e1.subscriptions).toBe(e1subs);
@@ -466,10 +466,10 @@ describe('Observable.combineLatest', () => {
466466
const values = { x: 'bf', y: 'cf', z: 'cg' };
467467

468468
const result = Observable.combineLatest(
469-
e1.mergeMap((x: string) => Observable.of(x)),
470-
e2.mergeMap((x: string) => Observable.of(x)),
471-
(x: any, y: any) => x + y
472-
).mergeMap((x: any) => Observable.of(x));
469+
e1.mergeMap((x) => Observable.of(x)),
470+
e2.mergeMap((x) => Observable.of(x)),
471+
(x, y) => x + y
472+
).mergeMap((x) => Observable.of(x));
473473

474474
expectObservable(result, unsub).toBe(expected, values);
475475
expectSubscriptions(e1.subscriptions).toBe(e1subs);

spec/observables/concat-spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ describe('Observable.concat', () => {
5858
const expected = '--i-j-k-l---i-j-';
5959
const unsub = ' !';
6060

61-
const innerWrapped = inner.mergeMap((x: string) => Observable.of(x));
61+
const innerWrapped = inner.mergeMap((x) => Observable.of(x));
6262
const result = Observable
6363
.concat(innerWrapped, innerWrapped, innerWrapped, innerWrapped)
64-
.mergeMap((x: any) => Observable.of(x));
64+
.mergeMap((x) => Observable.of(x));
6565

6666
expectObservable(result, unsub).toBe(expected);
6767
expectSubscriptions(inner.subscriptions).toBe(innersubs);
@@ -334,17 +334,17 @@ describe('Observable.concat', () => {
334334
expectSubscriptions(e2.subscriptions).toBe(e2subs);
335335
});
336336

337-
it('should concat an immediately-scheduled source with an immediately-scheduled second', (done: MochaDone) => {
337+
it('should concat an immediately-scheduled source with an immediately-scheduled second', (done) => {
338338
const a = Observable.of<number>(1, 2, 3, queueScheduler);
339339
const b = Observable.of<number>(4, 5, 6, 7, 8, queueScheduler);
340340
const r = [1, 2, 3, 4, 5, 6, 7, 8];
341341

342-
Observable.concat(a, b, queueScheduler).subscribe((vals: number) => {
342+
Observable.concat(a, b, queueScheduler).subscribe((vals) => {
343343
expect(vals).to.equal(r.shift());
344344
}, null, done);
345345
});
346346

347-
it('should use the scheduler even when one Observable is concat\'d', (done: MochaDone) => {
347+
it('should use the scheduler even when one Observable is concat\'d', (done) => {
348348
let e1Subscribed = false;
349349
const e1 = Observable.defer(() => {
350350
e1Subscribed = true;

spec/observables/merge-spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ describe('Observable.merge(...observables, Scheduler, number)', () => {
263263
expectObservable(Observable.merge(e1, e2, e3, 2, rxTestScheduler)).toBe(expected);
264264
});
265265

266-
it('should use the scheduler even when one Observable is merged', (done: MochaDone) => {
266+
it('should use the scheduler even when one Observable is merged', (done) => {
267267
let e1Subscribed = false;
268268
const e1 = Observable.defer(() => {
269269
e1Subscribed = true;

0 commit comments

Comments
 (0)