Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法在typescript上用util.promisify继承方法签名?_Javascript_Node.js_Typescript - Fatal编程技术网

Javascript 有没有办法在typescript上用util.promisify继承方法签名?

Javascript 有没有办法在typescript上用util.promisify继承方法签名?,javascript,node.js,typescript,Javascript,Node.js,Typescript,从v8.0.0节点提供API。现在我尝试将一些回调样式的方法转换为异步/等待样式。 在typescript上,util.promisify()不能继承方法签名: import fs = require('fs'); export namespace AsyncFs { export const lstat = util.promisify(fs.lstat); // there's no method signature, only shows as "Function" }

从v8.0.0节点提供API。现在我尝试将一些回调样式的方法转换为异步/等待样式。 在typescript上,
util.promisify()
不能继承方法签名:

import fs = require('fs');

export namespace AsyncFs {
    export const lstat = util.promisify(fs.lstat);
    // there's no method signature, only shows as "Function"
}
虽然我们可以为每个方法添加新签名

export const lstat = util.promisify(fs.lstat) as (path: string | Buffer) => fs.Stats;
所以我正在寻找一种自动继承签名的好方法。可能吗?你有什么好主意吗


谢谢。

如果不是由TS内部处理,那么您可能必须为
util.promisify()
自己定义类型,执行类似的操作

staticpromisify(func:(回调:(err:any,result:T)=>void)=>void,options?:Bluebird.PromisifyOptions:()=>Bluebird;
静态promisify(func:(arg1:A1,回调:(err:any,result:T)=>void)=>void,options?:Bluebird.PromisifyOptions:(arg1:A1)=>Bluebird;
静态promisify(func:(arg1:A1,arg2:A2,callback:(err:any,result:T)=>void)=>void,options?:Bluebird.PromisifyOptions:(arg1:A1,arg2:A2)=>Bluebird;
静态promisify(func:(arg1:A1,arg2:A2,arg3:A3,回调:(err:any,result:T)=>void)=>void,options?:Bluebird.PromisifyOptions:(arg1:A1,arg2:A2,arg3:A3)=>Bluebird;
静态promisify(func:(arg1:A1,arg2:A2,arg3:A3,arg4:A4,回调:(err:any,result:T)=>void)=>void,选项?:Bluebird.PromisifyOptions:(arg1:A1,arg2:A2,arg3:A3,arg4:A4)=>Bluebird;
静态promisify(函数:(arg1:A1,arg2:A2,arg3:A3,arg4:A4,arg5:A5,回调:(err:any,result:T)=>void)=>void,options?:Bluebird.PromisifyOptions:(arg1:A1,arg2:A2,arg3:A3,arg4:A4,arg5:A5)=>Bluebird;
你说的“继承”是指推断?
  static promisify<T>(func: (callback: (err: any, result: T) => void) => void, options?: Bluebird.PromisifyOptions): () => Bluebird<T>;
  static promisify<T, A1>(func: (arg1: A1, callback: (err: any, result: T) => void) => void, options?: Bluebird.PromisifyOptions): (arg1: A1) => Bluebird<T>;
  static promisify<T, A1, A2>(func: (arg1: A1, arg2: A2, callback: (err: any, result: T) => void) => void, options?: Bluebird.PromisifyOptions): (arg1: A1, arg2: A2) => Bluebird<T>;
  static promisify<T, A1, A2, A3>(func: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, result: T) => void) => void, options?: Bluebird.PromisifyOptions): (arg1: A1, arg2: A2, arg3: A3) => Bluebird<T>;
  static promisify<T, A1, A2, A3, A4>(func: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, result: T) => void) => void, options?: Bluebird.PromisifyOptions): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Bluebird<T>;
  static promisify<T, A1, A2, A3, A4, A5>(func: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, result: T) => void) => void, options?: Bluebird.PromisifyOptions): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Bluebird<T>;