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

时间:2017-06-14 08:54:59

标签: javascript node.js typescript

从v8.0.0开始,节点提供了util.promisify() API。现在我试图将一些回调式方法转换为异步/等待样式。 在打字稿上,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;

所以我正在寻找一种自动继承签名的好方法。可能吗?你有什么好主意吗?

感谢。

1 个答案:

答案 0 :(得分:1)

如果TS内部没有处理,那么您可能需要为using System.Diagnostics; using System.Windows; using System.Windows.Input; namespace WpfApp1 { public class Data { public string Member1 { get; set; } } public partial class MainWindow : Window { public static RoutedCommand Test = new RoutedCommand(); public MainWindow() { InitializeComponent(); CommandBindings.Add(new CommandBinding(Test, (s, e) => { Debugger.Break(); })); } } } 自己定义类似于what they do for Bluebird's promisify() static function in DefinitelyTyped的类型。

util.promisify()