Typescript 看不到 try/catch 的返回值

我有一个执行一些数据库操作的函数。该实现被包装在一个try/catch块中。例如


async function update({id, ...changes}): Promise<IUserResult> {

 try {

  //code implementation here

  return updatedUser

 } catch(error) {

    console.error

 }

}

打字稿编译器总是抛出一个错误,我返回未定义。我知道是这样,因为我没有从函数块本身显式返回任何值,而是从try/catch块中显式返回任何值。我该怎么办?我刚刚学习打字稿,我想知道如何获取返回值以匹配函数返回类型,在本例中为IUserResult.


非常感谢。


精慕HU
浏览 47回答 1
1回答

慕仙森

Typescript 希望在所有情况下都有一个有效的返回类型,但在出现异常时您没有任何返回值。您需要在 catch (或者最终)块中返回一些内容,或者创建像 Promise<IUserResult|void> 这样的返回类型
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript