从 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");
我有这个:
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");