promisify redis获取并返回正确的typescript类型

a11xaf1n  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(328)

redis方法 get 从redis node lib有这个typescript签名:

export interface Commands<R> {
    get(key: string, cb?: Callback<string | null>): R;
}

如果我 promisify 方法,签名将丢失,返回类型将变为 any .
我已尝试以这种方式设置正确的签名:

const client = redis.createClient(redisOption);
const getAsync = promisify<redis.Commands<boolean>['get']>(client.get).bind(client);

但是ts lint显示了一些错误:
获取键的值。
没有与此呼叫匹配的重载。重载第1个,共14个,'(fn:custompromisify<(key:string,cb?:callback)=>boolean>):(key:string,cb?:callback)=>boolean',出现以下错误。类型为“(key:string,cb?:callback)=>boolean”的参数不能赋给类型为“custompromisify<(key:string,cb?:callback)=>boolean>”的参数。类型“(key:string,cb?:callback)=>boolean”中缺少属性“promisify”,但类型“custompromisifylegacy<(key:string,cb?:callback)=>boolean>”中需要该属性。重载第2个,共14个,'(fn:(callback:(err:any,result:(key:string,cb?:callback)=>boolean)=>void)=>void):()=>promise<(key:string,cb?:callback)=>boolean>',出现以下错误。类型'(key:string,cb?:callback)=>boolean'的参数不能赋值给类型'(callback:(err:any,result:(key:string,cb?:callback)=>boolean)=>void)=>void'的参数。
如何设置正确的签名?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题