【发布时间】:2022-01-26 20:40:52
【问题描述】:
假设我有这门课:
class Foo {
bar = this.createDynamicFunction((param: string) => {
return "string" + param;
});
baz = this.createDynamicFunction((param: number) => {
return 1 + param;
});
createDynamicFunction(fn: (param: any) => any) {
return (param) => fn(param);
}
}
const foo = new Foo()
foo.bar('baz') // => barbaz
foo.baz(2) // => 3
如何声明函数Foo.prototype.bar 和Foo.prototype.baz 的类型?我想明确地说bar 和baz 分别接受和返回string 和number。
我意识到这是一个人为的例子。在某些情况下,我正处于重写我的一个消息队列客户端库的最后阶段,并且许多类函数都是动态创建的。这些函数共享许多功能,但它们的输入/输出不同。
【问题讨论】:
标签: typescript