Rxjs过滤shiftKey

时间:2016-11-07 03:23:24

标签: angular rxjs rxjs5

我正在寻找具有此过滤器的示例:

Observable.fromEvent(this.getNativeElement(this.btn), 'click')
      .filter(event => event.shiftKey)
      .map(event => 'Beast Mode Activated!!!')
      .subscribe(message => this.message = message);

这个引用"rxjs": "5.0.0-beta.5"

在我的项目中,我收到错误:

[ts] Property 'shiftKey' does not exist on type '{}'. any

我引用了"rxjs": "5.0.0-beta.12"

我在两种情况下都有同样的错误。

这就是我在进口中所获得的:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/map';

1 个答案:

答案 0 :(得分:2)

因为event

上没有类型信息
.filter(event => event.shiftKey)

它只被视为{}类型。你可以"演员"它或指定类型

.filter((event: any) =>
.filter((event: ExpectedEventType) =>
.filter(event => (<any>event).shiftKey)

其中任何一个都应该有用。使用ExpectedEventType时,应将其替换为实际的事件类型。这只有在你关心强打字的情况下才有用。如果这不是问题,那么使用any应该没问题。