首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误TS2339:类型'Observable<boolean>‘上不存在属性’分区‘

错误TS2339:类型'Observable<boolean>‘上不存在属性’分区‘
EN

Stack Overflow用户
提问于 2019-06-15 09:35:35
回答 2查看 634关注 0票数 3

以前我使用的是rxjs-5,我使用的是observable.partition,如下所示:

代码语言:javascript
复制
const [isTiming$, isNotTiming$] = this.store.select(state => state.tetris.isTiming)
        .partition(value => value);

升级angular8之后,rxjs升级到rxjs-6,开始抛出以下错误:

代码语言:javascript
复制
 providers/timer.provider.ts(27,5): error TS2339: Property 'partition' does not exist on type 'Observable<boolean>'.

当我签入旧的rxjs实现时,它的实现如下:

代码语言:javascript
复制
  import { Observable } from '../Observable';
  import { partition as higherOrder } from '../operators/partition';
  /**
   * Splits the source Observable into two, one with values that satisfy a
   * predicate, and another with values that don't satisfy the predicate.
   */
   export function partition<T>(this: Observable<T>, predicate: (value: T, index: number) => boolean, thisArg?: any): [Observable<T>, Observable<T>] {
    return higherOrder(predicate, thisArg)(this);
  }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-15 09:52:50

在看了github转换之后

我认为我们应该放弃分区操作符,并为v7删除它。

原因:

  • 实际上不是运算符:分区并不是真正的“运算符”,因为它返回可观察的、可观察的而不是可观察的。这意味着它不像其他的那样通过管道作曲。
  • 易于用过滤器替换:分区很容易被更广泛的过滤器操作符所取代。As分区实际上与以下内容相同:const partition = (predicate) => [source.pipe(filter(predicate)), source.pipe(filter((x, i) => !predicate(x, i)))]

就你而言:

代码语言:javascript
复制
import {filter} = "rxjs/operators"
const source = this.store.select(state => state.tetris.isTiming);
const partition = (predicate) => [source.pipe(filter(predicate)), source.pipe(filter((x, i) => !predicate(x, i)))]

const [isTiming$, isNotTiming$] = partition(value => value);
  • 很少使用:我所做的任何代码调查都很少使用它(在我知道使用RxJS的数千行代码中)
票数 3
EN

Stack Overflow用户

发布于 2019-06-15 09:52:58

我请您使用可观察的方法pipe,如下所示:

代码语言:javascript
复制
const [isTiming$, isNotTiming$] = this.store.select(state => state.tetris.isTiming)
        .pipe(
            partition(value => value);
        )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56609155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档