在 Angular2 和 Typescript 滚动中使用 lodash debounce 不起作用

Using lodash debounce in Angular2 & Typescript scroll not working

我有以下调用 lodash 去抖功能的代码:

@HostListener("window:scroll", [])
onWindowScroll() {
    if (myBoolean) 
       _.debounce(this.onScrollDown(), 1500, false);

    }
}

private onScrollDown() {
    console.log("onScrollDown")
}

但是我的控制台出现了这个错误:

Argument of type 'void' is not assignable to parameter of type 'Function'.

以及浏览器上的以下内容:

TypeError: Expected a function
    at Function.debounce 

顺便说一句,我正在使用打字稿

我对lodash不熟悉,但我想你想要的是:

private debouncedOnScroll = _.debounce(() => this.onScrollDown(), 1500, {});

@HostListener("window:scroll", [])
onWindowScroll() {
    this.debouncedOnScroll();
}

private onScrollDown() {
    console.log("onScrollDown")
}

感谢 JB Nizet,我可以解决我的需求,这是我的方法:

1) 创建你想要去抖动的函数:

private projectsLoad(myParameter): void {
   // function code here...
};

2) 将其分配给 class 的 field/member:

private debounceProjectsLoad = _.debounce(
    (myParameter) => this.projectsLoad(myParameter),
    1500,
    true
);

3) 在需要时调用去抖field/meber:

public loadProjectsGroup(myParameter: string): void {
    this.debounceProjectsLoad(myParameter);
}