小编Mac*_*tko的帖子

理解递归甚至函数问题(Javascript)

问题很简单,我有一个来自'Javascript Allonge'书的功能,并且很难理解它.

该函数被称为偶数,它如下:

var even = function(num) {
    return (num === 0) || !(even(num -1));
}
Run Code Online (Sandbox Code Playgroud)

它检查数字是否均匀,但我不明白如何.它以递归方式调用自身,技术上总是达到零,不是吗?这是如何运作的?

javascript recursion

5
推荐指数
1
解决办法
331
查看次数

RxJs/Typescript抛出属性clientX在类型{}上不存在

我正在尝试做一些非常简单的事情,只需在mouseover上记录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
  })
Run Code Online (Sandbox Code Playgroud)

然后我订阅它,喜欢:

StarShip.subscribe(x =>  console.log(x));
Run Code Online (Sandbox Code Playgroud)

发生的事情是,typescript编译器不断抛出这种特殊类型的错误:

Property clientX does not exist on type {}
Run Code Online (Sandbox Code Playgroud)

我猜测因为它仍然是一个空的Rx主题,而clientX尚未存在,因为它需要通过鼠标悬停初始化.这有点愚蠢,因为如果我删除.clientX,并event留在那里x,它会毫无问题地退出.

如何解决这种不兼容问题并解决此错误?

编辑:

对不起,刚发现解决方案就是输入类型声明

(event: MouseEvent) => { ... }
Run Code Online (Sandbox Code Playgroud)

像这样.

rxjs typescript rxjs5

5
推荐指数
1
解决办法
1485
查看次数

标签 统计

javascript ×1

recursion ×1

rxjs ×1

rxjs5 ×1

typescript ×1