打字稿-带类型保护的RxJs过滤器运算符类型推断

时间:2018-12-14 11:25:05

标签: typescript rxjs

编辑:这是一个IntelliJ问题,VSCode可以正确显示它。
https://youtrack.jetbrains.com/issue/WEB-36341

发布

我有一个类型保护方法:

public isValid<T>(result: Result<T>): result is ValidResult<T> {
    return result.isValid()
}

Result类型是:

type Result<T = void> = ValidResult<T> | ErrorResult<T>

我正在尝试弄清楚如何使用类型推断

this.myService
    .getResult(...) // returns Observable<Result<ReadonlyArray<string>>>
    .pipe(filter(Result.isValid))
    .subscribe(result => myFun(result.value)) // here result is "any"

很明显,如果我指定了通用类型,它将按预期工作:

.pipe(filter<Result<ReadonlyArray<string>>, ValidResult<ReadonlyArray<string>>>(Result.isValid))

0 个答案:

没有答案