使用TypeScript变量args时,Node会从省略号报告语法错误

时间:2016-06-20 04:53:30

标签: asynchronous typescript promise ecmascript-6

我试图编写一个帮助方法,用于将节点的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 ...

我怎样才能让它发挥作用?

0 个答案:

没有答案