RxJs / Typescript 抛出 'property clientX does not exist on type {}'
RxJs / Typescript throws 'property clientX does not exist on type {}'
我正在尝试做一些非常简单的事情,只需在鼠标悬停时记录 event.clientX,这是模块代码:
import { Observable, Subject } from 'rxjs';
import StarSky from './starsky';
import constants from '../constants/index';
const HERO_Y = constants.HERO_Y(StarSky.canvas);
export const StarShip = Observable.fromEvent(StarSky.canvas,'mousemove')
.map((event)=> {
return {
x: event.clientX,
y: HERO_Y
}
})
.startWith({
x: StarSky.canvas.width /2,
y: HERO_Y
})
那我晚点订阅,赞:
StarShip.subscribe(x => console.log(x));
发生的事情是打字稿编译器不断抛出这种特殊类型的错误:
Property clientX does not exist on type {}
我猜是因为它仍然是一个空的 Rx Subject,并且 clientX 还不存在,因为它需要通过鼠标悬停进行初始化。这有点愚蠢,因为如果我删除 .clientX
,并将 event
保留为 x
,它会毫无问题地注销。
如何解决这种不兼容问题并解决此错误?
编辑:
不好意思,刚发现解决办法就是放类型声明
(event: MouseEvent) => { ... }
就这样。
'property clientX does not exist on type {}'
这是因为未键入可观察对象:
Observable.fromEvent(StarSky.canvas,'mousemove')
您可以添加注释作为通用参数:
Observable.fromEvent<MouseEvent>(StarSky.canvas,'mousemove')
或者像你一样回调。
我正在尝试做一些非常简单的事情,只需在鼠标悬停时记录 event.clientX,这是模块代码:
import { Observable, Subject } from 'rxjs';
import StarSky from './starsky';
import constants from '../constants/index';
const HERO_Y = constants.HERO_Y(StarSky.canvas);
export const StarShip = Observable.fromEvent(StarSky.canvas,'mousemove')
.map((event)=> {
return {
x: event.clientX,
y: HERO_Y
}
})
.startWith({
x: StarSky.canvas.width /2,
y: HERO_Y
})
那我晚点订阅,赞:
StarShip.subscribe(x => console.log(x));
发生的事情是打字稿编译器不断抛出这种特殊类型的错误:
Property clientX does not exist on type {}
我猜是因为它仍然是一个空的 Rx Subject,并且 clientX 还不存在,因为它需要通过鼠标悬停进行初始化。这有点愚蠢,因为如果我删除 .clientX
,并将 event
保留为 x
,它会毫无问题地注销。
如何解决这种不兼容问题并解决此错误?
编辑:
不好意思,刚发现解决办法就是放类型声明
(event: MouseEvent) => { ... }
就这样。
'property clientX does not exist on type {}'
这是因为未键入可观察对象:
Observable.fromEvent(StarSky.canvas,'mousemove')
您可以添加注释作为通用参数:
Observable.fromEvent<MouseEvent>(StarSky.canvas,'mousemove')
或者像你一样回调。