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'的参数。
如何设置正确的签名?
暂无答案!
目前还没有任何答案,快来回答吧!