提问者:小点点

Typescript看不到Try/Catch的返回值


我有一个函数,做一些数据库操作。实现包装在块中。例如

async function update({id, ...changes}): Promise<IUserResult> {
 try {
  //code implementation here
  return updatedUser
 } catch(error) {
    console.error
 }
}

Typescript编译器总是抛出一个错误,我返回未定义。我知道这是因为我没有从函数块本身显式返回任何值,而是从块返回。我该怎么做呢?我正在学习typescript,我想知道如何获得与函数返回类型匹配的返回值,在本例中是

非常感谢。


共1个答案

匿名用户

Typescript希望在所有情况下都有一个有效的返回类型,但在异常情况下没有任何返回。

您需要在您的catch(或者可能是最后)中返回一些内容,block或make返回类型,如promise<IUserResultVoid&>;