我正在尝试创建一个函数,该函数遍历ioredis客户端列表,并将提供给所有客户端的数据写入其中,目前,函数实现如下所示:
public writeAll(args: any) {
return this.clients.map((client) => client.set.apply(this, args));
}
但是正如您已经看到的,实现有两个问题:
- 不可能在作为输入传递的参数中进行类型检查。(理想情况下,我希望保留与ioredis set函数相同的类型,但只是实现不同(
- 参数需要作为数组提供
是否可以将ioredis的参数类型复制到此函数,而不将参数作为数组获取?
使用rest参数和内置的Parameters
类型:
public writeAll(...args: Parameters<Redis["set"]>) {
return this.clients.map((client) => client.set.apply(this, args));
}
游乐场