我正在使用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是否已解决,但是我不确定是否对它的支持有正式的立场。
答案 0 :(得分:2)
不支持此功能。类型断言函数不能返回任何值,异步函数总是返回一个Promise。
如果此问题影响您或者有关此问题的更多讨论,您可以关注https://github.com/microsoft/TypeScript/issues/34636。
original PR that introduced type assertions说:“在函数调用作为顶级表达式语句发生时,该函数调用被分析为断言调用或永不返回的调用”(在其他条件中)。之所以排除承诺,是因为承诺必须是await
表达式或赋值表达式的一部分,而不是顶层表达式语句。