Skip to content

Instantly share code, notes, and snippets.

@cartant
Last active May 14, 2018 03:17
Show Gist options
  • Select an option

  • Save cartant/920e787e1a5a4aa484e91180ab0d5945 to your computer and use it in GitHub Desktop.

Select an option

Save cartant/920e787e1a5a4aa484e91180ab0d5945 to your computer and use it in GitHub Desktop.
import { Observable, OperatorFunction } from "rxjs";
/* ... */
interface Collection {
traverse(): Observable<Document>;
traverse<A>(
op1: OperatorFunction<Document, A>): Observable<A>;
traverse<A, B>(
op1: OperatorFunction<Document, A>,
op2: OperatorFunction<A, B>): Observable<B>;
traverse<A, B, C>(
op1: OperatorFunction<Document, A>,
op2: OperatorFunction<A, B>,
op3: OperatorFunction<B, C>): Observable<C>;
/* ... 5 signatures elided ... */
traverse<A, B, C, D, E, F, G, H, I>(
op1: OperatorFunction<Document, A>,
op2: OperatorFunction<A, B>,
op3: OperatorFunction<B, C>,
op4: OperatorFunction<C, D>,
op5: OperatorFunction<D, E>,
op6: OperatorFunction<E, F>,
op7: OperatorFunction<F, G>,
op8: OperatorFunction<G, H>,
op9: OperatorFunction<H, I>): Observable<I>;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment