flowtype如何用可选字段注释联合

2023-12-24

如何在流程中实现以下目标

export type Response = {
  err: string,
  data: ?Array<Object>,
} | {
  data: Array<Object>,
};

我想表达一种类型,它返回错误和可选数据,或者不返回错误字段(如果没有)。但是,我用它作为

return { err: 'todo' };
                ^^^^^^^^^^^^^^^ object literal. This type is incompatible with
.... Response
union: object type(s)

在 Flow 中,可选字段和可为空值之间存在差异。

  1. {key: ?valueType}表示对象must包含key,其值必须是null or类型的valueType.

  2. {key?: valueType}表示对象might包含key, 而如果key存在,其值必须是类型valueType.

  3. {key?: ?valueType}表示对象might包含key, 而如果key存在,其值必须是null or类型的valueType.

您的用例需要#2 或#3。就我个人而言,我建议不要使用#3——我发现该模式比它需要的更灵活。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

flowtype如何用可选字段注释联合 的相关文章

随机推荐

  • 具有 NavigationView/NavigationLink 延迟跳回的编程式导航

    我创建一个简单的展示 https github com haemi NavigationProblem哪里可以重现我的问题 我正在做的是从初始视图 gt View1 gt View2 导航 从初始视图到 View1 的导航是通过按钮点击进行
  • Pandas“Freq”标签中哪些值有效?

    我正在尝试使用date range 我发现了一些有效的值freq like BME and BMS我希望能够快速查找正确的字符串以获得我想要的东西 Pandas Freq 标签中哪些值有效 你可以找到它叫偏移别名 https pandas
  • UITextField 在 iOS 5 中导致崩溃,在 iOS 4 中工作正常

    我有一个非常奇怪的问题 如果我单击 UITextField 我的应用程序中的任何 UITextField 都会崩溃并出现以下错误 0 CreateCachePathEmbedded CFString const 无符号字符 0x0246ac
  • Hibernate LazyInitializationException on find() 与 EAGER @ElementCollection

    我正进入 状态org hibernate LazyInitializationException illegal access to loading collection在我的 JPA 代码中 当集合实体也有一个集合时 所有集合都是 EAG
  • android:在设备旋转时禁用 opengl ES 上下文切换

    我有一个 Android 全屏 opengl es 应用程序 当设备从纵向旋转到横向并返回时 gl 上下文将被破坏并重新创建 有办法避免这种情况吗 即始终保持纵向或横向 编辑 我的活动中已经有这个代码 Override protected
  • 在设备上使用 ACRA Logcat 为空

    所以我使用 ACRA 4 4 0 和所有默认值 并且我的 logcat 字段为空 我的应用程序有
  • 如何使用java httpclient实现大文件的HTTP Post分块上传?

    我有一个巨大的文件要上传 另一端的服务器确实支持分块上传 有没有具体的例子说明如何做到这一点 或者还有其他库可以做到这一点 使用 HttpClient 4 来自 Apache HttpPost post new HttpPost url M
  • 如何通过Java编码调用浏览器?

    我想通过 Java 接口调用浏览器 例如 Internet Explorer Firefox Google Chrome Opera 我还需要将一些 Web 链接传递给这个 Java 进程 如何实现这一目标 您可以使用桌面API http
  • WebView getScrollY() 始终返回 0

    我尝试使用 webview 的滚动位置来确定 SwipeRefreshLayout 是否应该能够刷新 除了某些网站 例如https jobs lever co memebox https jobs lever co memebox getS
  • 所以...NoSQL 的事情

    我一直在研究 MongoDB 并且着迷 看来 尽管我不得不怀疑 作为以稍微不同的方式组织数据库的交换 我获得了与免费的 CPU 和 RAM 一样多的性能 它看起来优雅 灵活 但我不会像使用 Rails 那样以快速换取它 那么有什么问题呢 关
  • 为什么这个简单的 Spark 程序不利用多核?

    因此 我在 16 核多核系统上运行这个简单的程序 我运行它 通过发布以下内容 spark submit master local pi py 该程序的代码如下 pi py from pyspark import SparkContext i
  • WSO2 ESB 覆盖 ContentType 属性

    我正在开发 WSO2 ESB 代理服务 该服务涉及通过 ESB 上的 SOAP 端点公开内部 RESTful 服务 我的 RESTful 服务需要 Content type application rdf xml 我尝试使用文档中提到的所有
  • 如果函数创建并返回一个对象,它是否应该在自动释放池中

    我对 Objective C 还是很陌生 据我所知 任何我没有从 alloc new copy 或 mutableCopy 获得的对象都应该被假定在自动释放池中 我认为这也意味着 如果我创建一个创建并返回对象的新实例的函数 我应该在返回之前
  • 在lstm语言模型中使用预训练的word2vec?

    我用tensorflow来训练LSTM语言模型 代码来自here https github com tensorflow models blob master tutorials rnn ptb ptb word lm py 根据文章her
  • 将多个 json 数据添加到 panda 数据帧

    我正在使用 api 获取 3 个 json 数据 我想将这些数据添加到 1 个 panda 数据帧 这是我的代码 我传入的书籍中包含书籍 id 作为 x 这 3 个 id 返回了 3 个不同的 json 对象 其中包含所有书籍信息 for
  • WPF DataGrid CanUserAddRows = True

    我似乎在向 a 添加行时遇到问题DataGrid通过界面本身 这是用户界面的屏幕截图 正如您所看到的 在数据 库中找到了 0 行 因此没有任何内容显示在数据库中DataGrid在右侧 但我喜欢那里有一个空行 用于手动添加行 这DataGri
  • 获取 iOS Swift 中的顶级 ViewController

    我想实现一个单独的 ErrorHandler 类 它显示某些事件的错误消息 此类的行为应该从不同的其他类中调用 当发生错误时 会有一个UIAlertView作为输出 此 AlertView 的显示应始终位于顶部 因此 无论错误从哪里抛出 最
  • 如何将 RPC 与 Volttron 结合使用

    我想在我的 volttron 应用程序中使用 RPC 调用 但我无法让任何调用正常工作 所有调用都会失败 并出现 没有到主机的路由 错误
  • 为什么 Django 开发服务器会挂在这个管理工具 JS 文件上?

    使用 Django 管理工具时 它会定期挂起并停止响应请求 直到重新启动为止 每当它挂起时 日志中的最后一行是 获取 admin jsi18n HTTP 1 1 200 2158 挂起似乎发生在 POST 之后 例如查看添加对象的结果时 据
  • flowtype如何用可选字段注释联合

    如何在流程中实现以下目标 export type Response err string data Array data Array 我想表达一种类型 它返回错误和可选数据 或者不返回错误字段 如果没有 但是 我用它作为 return er