我试图编写一个帮助方法,用于将节点的fs
方法转换为TypeScript的异步方法(利用ES6生成器函数),并且省略了省略号I用于变量args:
function makeAsync<T>(method: (...args: any[]) => void, ...args: any[]) : Promise<T> {
return new Promise<T>((resolve, reject) => {
args.push((err, result) => {
if (err) {
reject(err);
} else {
resolve(result);
}
});
method.apply(null, args);
});
}
export async function readdirAsync(path: string) {
return makeAsync<string[]>(fs.readdir, path);
}
这可以通过tsc编译,但是在运行时节点抱怨生成的包含省略号的.js文件:
function makeAsync(method, ...args) {
^^^
SyntaxError: Unexpected token ...
我怎样才能让它发挥作用?