Rxjs 过滤 shiftKey

Rxjs filter shiftKey

我正在寻找具有此过滤器的样本:

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';

因为 event

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

只是作为{}类型处理。你可以"cast"它或指定一个类型

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

这些都应该有效。对于 ExpectedEventType,应将其替换为实际的事件类型。仅当您关心强类型时才这样做。如果这不是问题,使用 any 应该没问题。