首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何结合使用HMSET和node promisify

如何结合使用HMSET和node promisify
EN

Stack Overflow用户
提问于 2020-08-23 01:49:36
回答 1查看 240关注 0票数 2

我使用的是node (TypeScript)和node-redis库。因为我使用的是TypeScript,所以我也导入了@types/redis。

此外,我还阅读了这篇关于如何简化redis方法以用于TypeScript的文章:https://flaviocopes.com/node-promisify/

我的问题是,它适用于一些redis方法(如GET、SET等),但不适用于例如HSET或HGETALL。

如果我查看类型建议,我会发现关键方法实际上根本不是方法,而是属性(hset,HSET):

为何会这样呢?如何访问这些所需的方法?

我想我做了一些明显错误的事情。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-23 02:16:40

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

代码语言:javascript
复制
get(key: string, cb?: Callback<string | null>): R;

hset被定义为:

代码语言:javascript
复制
hset: OverloadedSetCommand<string, number, R>;

尽管OverloadedSetCommand被定义为

代码语言:javascript
复制
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中)。

如果我手动覆盖该定义,如下所示:

代码语言:javascript
复制
hset(hash: string, field: string, value:any): R;

代码完成显示了一个预期的函数。

也许你可以在https://github.com/DefinitelyTyped/DefinitelyTyped上提出一个问题,但现在我想你只能顺其自然了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63539317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档