将typescript类方法作为回调传递

将typescript类方法作为回调传递,typescript,firebase,google-cloud-functions,Typescript,Firebase,Google Cloud Functions,我试图在Firebase函数上使用Typescript,定义一个类,该类有一个我想作为回调传递以导出函数代码的方法。 我试过这个: class Foo { bar (data) { return data.bar; } handler(event) { return this.bar(event.data); } } 在index.ts上,我尝试过: functions.pubsub.topic('subscriptions').onPublish(new Foo().handler)

我试图在Firebase函数上使用Typescript,定义一个类,该类有一个我想作为回调传递以导出函数代码的方法。 我试过这个:

class Foo {
  bar (data) { return data.bar; }
  handler(event) { return this.bar(event.data); }
}
在index.ts上,我尝试过:

functions.pubsub.topic('subscriptions').onPublish(new Foo().handler);
但是我得到
无法访问未定义的
的属性“bar”,这意味着
处理程序中未定义

然后,我尝试将调用方法用作:

const fooInstance = new Foo()
functions.pubsub.topic('subscriptions').onPublish((event) => fooInstance.handler.call(fooInstance, event));

但我也犯了同样的错误。我现在不知所措。有什么建议吗?

这是一个应该可以使用的版本。。。虽然我不知道您的
onPublish
期望得到什么,但是我现在已经在一个变量中捕获了结果,因为我不知道您想要对它做什么

functions.pubsub.topic('subscriptions').onPublish((event) => {
    const result = new Foo().handler(event);
});

嘿@Fenton,
onPublish
需要一个返回承诺的函数,所以这可能确实有效。事实上,我用
调用
的解决方案效果很好,但我还是会用你的,因为它更具可读性。