javascript - 异步字符串的流类型返回类型

标签 javascript flowtype

我使用 flow-type

将异步方法的返回类型定义为 Promise < string >

如果我添加一个 try catch 循环,它就不起作用。

请点击示例查看在flow.org/try上运行的代码

示例 1 不起作用 🛑 - Code

async function foo(): Promise<string> {
  try {
    return await 'foo'
  } catch (e){ console.error(e) }
}

示例 2 有效 👍 - Code

async function foo(): Promise<string> {
  return await 'foo'
}

最佳答案

“我想发布问题帮助我弄明白了”

适用于 Try/Catch 👍 Code

async function foo(): Promise<string | void> {
  try{
    return await 'foo'
  } catch (e){ console.error(e) }
}

我添加了| void 类型。 原因是因为 catch 实际上返回一个等于 void 的未定义值。

但我仍然想知道还有什么方法可以简化类型代码

关于javascript - 异步字符串的流类型返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48918188/

相关文章:

通过 href 调用 javascript 函数?

javascript - 在 Ember Controller 中访问变量

generics - 如何输入返回子类型的泛型函数

javascript - 流类型: Return type of the function to be same as args of a callback?

javascript - 如何为流类型设置 'rest' 参数

javascript - ag-grid:引用节点的层次树:如何使引用的属性可编辑?

javascript - setState 函数如何工作?

javascript - 如果循环定义中没有使用 i 变量,为什么它会包含在循环定义中?

javascript - 流提示对象默认值解构中的不兼容类型

javascript - 有没有办法防止 VSCode 自动格式化在问号和单词之间添加空格