从 Observable.fromEvent() 的订阅回调中获取键入的信息

Get typed information from subscribe callback for Observable.fromEvent()

我有这个:

this.keydownSub = Observable.fromEvent(document, 'keyup').subscribe(v => {

  if(v){
    if(v.keyCode == '37'){
      this.goLeft();
    }
    if(v.keyCode == '39'){
      this.goRight();
    }
  }
});

问题是变量 v 没有类型信息,这是因为事件类型是动态的(使用 'keyup')。

有没有办法使用像这样的东西:

this.keydownSub = Observable.fromEvent(document).keyUp().subscribe(v => {

  if(v){
    if(v.keyCode == '37'){
      this.goLeft();
    }
    if(v.keyCode == '39'){
      this.goRight();
    }
  }
});

所以静态类型信息是 possible/available?

fromEvent observable creator 是一个通用函数。如果您知道对应于事件的类型,则可以将该类型指定为类型参数。像这样:

const event$ = Rx.Observable.fromEvent<KeyboardEvent>(document, "keyup");