Я хотел бы создать пользовательский Observable
в RxJS 6
Метод Observable.create()
помечен как устарел , и вместо него рекомендуется использовать new Observable()
.
Это все нормально, но как правильно указать тип моего Observable
?
myWork() {
return new Observable( sub => {
this.target.onsomething = data => {
sub.next(data);
sub.complete();
}
this.target.onerror = err => sub.error(err);
});
}
Приведенный выше код возвращает Observable<unknown>
. Я нашел 2 способа преобразовать его в то, что я хочу, но ни один из них не выглядит чистым.
опция 1 указывает тип в функции возврата.
myWork(): Observable<MyData> {}
опция 2 указать тип абонента
return new Observable( (sub: Subscriber<MyData>) => { //...
Я пропускаю третий способ, который чище?