如何将 HMSET 与节点 promisify 一起使用
How do I use HMSET with node promisify
我正在使用 node (TypeScript) 和 node-redis 库。由于我使用的是TypeScript,所以我还导入了@types/redis.
此外,我阅读了这篇关于如何为 TypeScript 使用 promisify redis 方法的文章:https://flaviocopes.com/node-promisify/
我的问题是它适用于某些 redis 方法(如 GET、SET 等),但不适用于例如HSET 或 HGETALL。
如果我查看类型建议,我发现关键方法实际上根本不是方法,而是属性(hset、HSET):
为什么会这样?我怎样才能访问那些需要的方法?
我想我做错了什么。有什么想法吗?
我看了一下 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 顺便说一句)。
如果我手动覆盖定义为:
hset(hash: string, field: string, value:any): R;
代码完成显示了预期的功能。
也许你可以在 https://github.com/DefinitelyTyped/DefinitelyTyped 上提出问题,但现在我想你必须接受它。
我正在使用 node (TypeScript) 和 node-redis 库。由于我使用的是TypeScript,所以我还导入了@types/redis.
此外,我阅读了这篇关于如何为 TypeScript 使用 promisify redis 方法的文章:https://flaviocopes.com/node-promisify/
我的问题是它适用于某些 redis 方法(如 GET、SET 等),但不适用于例如HSET 或 HGETALL。
如果我查看类型建议,我发现关键方法实际上根本不是方法,而是属性(hset、HSET):
为什么会这样?我怎样才能访问那些需要的方法?
我想我做错了什么。有什么想法吗?
我看了一下 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 顺便说一句)。
如果我手动覆盖定义为:
hset(hash: string, field: string, value:any): R;
代码完成显示了预期的功能。
也许你可以在 https://github.com/DefinitelyTyped/DefinitelyTyped 上提出问题,但现在我想你必须接受它。