【发布时间】:2016-11-07 04:37:34
【问题描述】:
我有这样的代码取自 rxjs 示例:
Observable.fromEvent(this.getNativeElement(this.right), 'click')
.map(event => 10)
.startWith({x: 400, y: 400})
.scan((acc, curr) => Object.assign({}, acc, {x: acc.x + curr}))
.subscribe(position => this.position = position);
打字稿给出这样的错误:
[ts] Argument of type '{ x: number; y: number; }' is not assignable to parameter of type 'number | Scheduler'.
Object literal may only specify known properties, and 'x' does not exist in type 'number | Scheduler'.
如何解决?
【问题讨论】:
-
您已经将所有发出的事件映射到一个数字文字 -
.map(event => 10)- 所以每次触发事件时,observable 都会发出10。 (为什么?)TypeScript 已正确推断出Observable<number>类型,但您随后指定了一个非数字起始值,这就是导致错误的原因。 -
@cartant 这只是我正在查看的一个示例。有没有更好的方法来避免错误?
-
@sreginogemoh 他的意思是你的例子没有意义。你得到的错误是合法的。一个可观察的数字如何从一个不是数字的对象开始?您的代码内容存在逻辑错误,打字稿指出了这一点。
标签: typescript rxjs rxjs5