无法在angular4中使用rxjs的过滤器运算符

时间:2018-11-28 21:23:20

标签: angular rxjs5 rxjs-pipeable-operators

我正在尝试在角度4中使用过滤器,这是我的代码

add_filter( 'woocommerce_cart_shipping_method_full_label', 'custom_shipping_method_labels', 10, 2 );
function custom_shipping_method_labels( $label, $method ){
    if( $method->id == 'local_pickup:2' )
        $label = __("Pick up from our store");
    return $label;
}

这是我的棱角版本,是我使用 ng --version 命令

发现的
import { Component, OnInit } from '@angular/core';
import { range } from 'rxjs/observable/range';
import { map, scan, filter, tap } from 'rxjs/operators';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html'
})
export class AppComponent implements OnInit {  

  ngOnInit(){
    this.rxjs();
  }
  rxjs(){
    const source$ = range(1, 10);

    source$.pipe(
      filter(n => n % 2 !== 0), 
      tap(n => console.log('filtered value: ' + n)),
      map(n => n * n),
      tap(n => console.log('squared value: ' + n)),
      scan((acc,s) => acc + s, 0)
    )
    .subscribe(v => console.log(`sum of squared values : ${v}`));    
  }    
}

但是当我编译时,出现了这样的错误

  E:/angular-mock/routes/src/app/app.component.ts中的

ERROR(19,19):   算术运算的左侧必须为“ any”类型,   “数字”或枚举类型。

有人可以帮我解决我在这方面做错的事情吗

2 个答案:

答案 0 :(得分:1)

您需要安装 RxJS才能使用此库

$ npm i rxjs

如果您需要 向后兼容性 ,而这些旧项目或依赖项尚未升级到版本6,但也使用紧凑版本

$ npm i rxjs-compat

阅读详细的迁移指南:

https://github.com/ReactiveX/rxjs/blob/master/docs_app/content/guide/v6/migration.md

演示:

$ npm i rxjs rxjs-compat

另请参见:

https://rxjs-dev.firebaseapp.com

https://github.com/ReactiveX/rxjs

答案 1 :(得分:-1)

好,我通过安装解决了这个问题 rxjs @ 6并安装rxjs-compat @ 6以实现向后兼容

package main

import "golang.org/x/tour/pic"

func Pic(dx, dy int) [][]uint8 {
    const x = dx
    const y = dy
    pic := [y][x]uint8{};

    for r:=range pic {
        row := pic[r]
        for c := range row {
            row[c] = uint8(c*r) 
        }
    }

    return pic[:]
}

func main() {
    pic.Show(Pic)
}