TS1057:异步函数或方法必须具有有效的等待返回类型

时间:2016-10-09 12:16:25

标签: javascript github typescript async-await

3月28日,在Github上开启了一个问题,即在针对ES5时,异步箭头函数会生成损坏的代码,最终会产生以下错误:

  

TS1057:异步函数或方法必须具有有效的等待返回   型

这是Github上的原始问题:https://github.com/Microsoft/TypeScript/issues/7706

7月21日,微软承诺在定位ES5时支持async awaithttp://react-etc.net/entry/async-await-support-for-es5-browsers-pushed-to-typescript-2-1

TypeScript 2.1现在可以在Github上使用。我已经下载了它,您可以在其package.json中看到该版本:

    "name": "typescript",
    "author": "Microsoft Corp.",
    "homepage": "http://typescriptlang.org/",
    "version": "2.1.0",
    "license": "Apache-2.0",

但是当我尝试使用异步箭头功能时(我确实使用TypeScript 2.1),我仍然遇到同样的错误:

  

TS1057:异步函数或方法必须具有有效的等待返回   型

有人刚刚在Github上就此问题提出了一个问题:https://github.com/Microsoft/TypeScript/issues/10805

他回答说这是重复的,并且从3月份开始引用旧问题,很长一段时间是在开发TypeScript 2.1之前,问题已经关闭。

此处是否有人使用异步箭头功能(并以ES5为目标),或者知道目前的状态是什么?

这是我的代码段:

async (param1) => {
        var var1 = await func1();
    }

任何帮助都将深表感谢!

1 个答案:

答案 0 :(得分:3)

我已经解决了!

问题出在我的代码中。

由于我使用TypeScript,我必须指定返回类型:

async (param1): Promise<void> => {
        var var1 = await func1();
    }

现在TypeScipt编译器不再抱怨了。