不同实现的类型脚本相同的函数参数类型

cgyqldqp  于 2022-09-21  发布在  Node.js
关注(0)|答案(1)|浏览(132)

我正在尝试创建一个遍历ioredis客户端列表并写入提供给所有客户端的数据的函数,目前,函数实现如下所示:

public writeAll(args: any) {
    return this.clients.map((client) => client.set.apply(this, args));
}

但正如您已经看到的,该实现有两个问题:

1.不能在作为输入传递的参数中进行类型检查。(理想情况下,我希望保留与ioredis set函数相同的类型,但实现有所不同)。
1.参数需要以数组的形式提供。

是否可以将ioredi的参数类型复制到此函数,同时不以数组形式获取参数?

huwehgph

huwehgph1#

使用rest parameters和内置的Parameters类型:

public writeAll(...args: Parameters<Redis["set"]>) {
    return this.clients.map((client) => client.set.apply(this, args));
}

Playground

相关问题