打字稿断言签名和承诺

时间:2020-02-11 01:16:31

标签: typescript

我正在使用Typescript 3.7断言签名,它们很棒!但是我也想在异步函数中使用它们,但出现错误:

Type 'void' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value.

断言签名不能用于异步函数是有道理的,因为Typescript需要评估Promise是否已解决,但是我不确定是否对它的支持有正式的立场。

1 个答案:

答案 0 :(得分:2)

不支持此功能。类型断言函数不能返回任何值,异步函数总是返回一个Promise。

如果此问题影响您或者有关此问题的更多讨论,您可以关注https://github.com/microsoft/TypeScript/issues/34636

original PR that introduced type assertions说:“在函数调用作为顶级表达式语句发生时,该函数调用被分析为断言调用或永不返回的调用”(在其他条件中)。之所以排除承诺,是因为承诺必须是await表达式或赋值表达式的一部分,而不是顶层表达式语句。