gpt4 book ai didi

node.js - 如何将HMSET与 Node Promisify一起使用

转载 作者:行者123 更新时间:2023-12-03 06:38:42 26 4
gpt4 key购买 nike

我正在使用node(TypeScript)和node-redis库。由于我使用TypeScript,因此我也导入了@ types / redis。
另外,我阅读了这篇文章,该文章介绍了如何在TypeScript使用中使用redis方法:https://flaviocopes.com/node-promisify/
我的问题是它适用于某些redis方法(例如GET,SET等),但不适用于例如HSET或HGETALL。
如果我研究类型建议,我会发现关键方法实际上根本不是方法,而是属性(hset,HSET):
enter image description here
为什么会这样呢?我该如何访问那些需要的方法?
我想我在做明显的错误。有任何想法吗?

最佳答案

我看了看source code of the typings,似乎get定义为一个函数:

get(key: string, cb?: Callback<string | null>): R;
hset定义为:
hset: OverloadedSetCommand<string, number, R>;
足够的 OverloadedSetCommand定义为
export interface OverloadedCommand<T, U, R> {
(arg1: T, arg2: T, arg3: T, arg4: T, arg5: T, arg6: T, cb?: Callback<U>): R;
(arg1: T, arg2: T, arg3: T, arg4: T, arg5: T, cb?: Callback<U>): R;
(arg1: T, arg2: T, arg3: T, arg4: T, cb?: Callback<U>): R;
(arg1: T, arg2: T, arg3: T, cb?: Callback<U>): R;
(arg1: T, arg2: T | T[], cb?: Callback<U>): R;
(arg1: T | T[], cb?: Callback<U>): R;
(...args: Array<T | Callback<U>>): R;
}
似乎它被解释为属性(Webstorm中不仅在vscode btw中发生了同样的情况)。
如果我手动将定义覆盖为:
hset(hash: string, field: string, value:any): R;
代码完成显示了预期的功能。
也许您可以在 https://github.com/DefinitelyTyped/DefinitelyTyped上提出一个问题,但是现在我想您必须解决这个问题。

关于node.js - 如何将HMSET与 Node Promisify一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63539317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com