From 228b727ff16d33dc4925e6414655652a3832ef33 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 4 Sep 2019 16:49:59 -0700 Subject: [PATCH] Add regression test --- .../compiler/observableInferenceCanBeMade.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 tests/cases/compiler/observableInferenceCanBeMade.ts diff --git a/tests/cases/compiler/observableInferenceCanBeMade.ts b/tests/cases/compiler/observableInferenceCanBeMade.ts new file mode 100644 index 00000000000..72685daabf6 --- /dev/null +++ b/tests/cases/compiler/observableInferenceCanBeMade.ts @@ -0,0 +1,22 @@ +// @strict: true + +// Repro from #33131 + +declare function of(a: T): Observable; +declare function from>(input: O): Observable>; + +type ObservedValueOf = O extends ObservableInput ? T : never; + +interface Subscribable { + subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): void; +} +type ObservableInput = Subscribable | Subscribable; + + +declare class Observable implements Subscribable { + subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): void; +} + +function asObservable(input: string | ObservableInput): Observable { + return typeof input === 'string' ? of(input) : from(input) +}