Skip to content

Commit f7e4c02

Browse files
david-driscollbenlesh
authored andcommitted
feat(typings): updated typings for combineAll, mergeAll, concatAll, switch, exhaust, zipAll (#3321)
this adds support for nested observables using some of the newest features of the TypeScript compiler. Also updated tests in related areas
1 parent 6dfaee5 commit f7e4c02

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)