从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;
所以我正在寻找一种自动继承签名的好方法。可能吗?你有什么好主意吗?
感谢。
答案 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()