Skip to content

Commit 638e555

Browse files
authored
Fix $subscribeTo accept PartialObserver from RxJS (#123)
* fix subscribeTo typedef * fix observable type * fix use rest args in sbuscribeTo
1 parent bc0231c commit 638e555

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

src/methods/subscribeTo.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Subscription } from 'rxjs'
22

3-
export default function subscribeTo (observable, next, error, complete) {
4-
const subscription = observable.subscribe(next, error, complete)
3+
export default function subscribeTo (observable, ...subscribeArgs) {
4+
const subscription = observable.subscribe(...subscribeArgs)
55
;(this._subscription || (this._subscription = new Subscription())).add(subscription)
66
return subscription
77
}

types/index.d.ts

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import Vue from 'vue'
22
import { WatchOptions } from 'vue'
3-
import { Observable } from 'rxjs'
3+
import { Observable, PartialObserver } from 'rxjs'
44

55
export type Observables = Record<string, Observable<any>>
6+
67
declare module 'vue/types/options' {
78
interface ComponentOptions<V extends Vue> {
89
subscriptions?: Observables | ((this: V) => Observables)
@@ -15,19 +16,27 @@ export interface WatchObservable<T> {
1516
newValue: T
1617
oldValue: T
1718
}
19+
1820
declare module "vue/types/vue" {
1921
interface Vue {
2022
$observables: Observables;
2123
$watchAsObservable(expr: string, options?: WatchOptions): Observable<WatchObservable<any>>
2224
$watchAsObservable<T>(fn: (this: this) => T, options?: WatchOptions): Observable<WatchObservable<T>>
2325
$eventToObservable(event: string): Observable<{name: string, msg: any}>
24-
$subscribeTo<T>(
25-
observable: Observable<T>,
26-
next: (t: T) => void,
27-
error?: (e: any) => void,
28-
complete?: () => void): void
2926
$fromDOMEvent(selector: string | null, event: string): Observable<Event>
3027
$createObservableMethod(methodName: string): Observable<any>
28+
29+
$subscribeTo<T>(
30+
observable: Observable<T>,
31+
observer?: PartialObserver<T>,
32+
): void;
33+
34+
$subscribeTo<T>(
35+
observable: Observable<T>,
36+
next: (value: T) => void,
37+
error?: (error: any) => void,
38+
complete?: () => void,
39+
): void;
3140
}
3241
}
3342

0 commit comments

Comments
 (0)