Flowtype - 制作密封的空物体

2023-12-11

Flow 的文档说:When you create an object without any properties, you create an unsealed object type in Flow.是否可以创建一个没有属性的密封对象?

我的用例如下。我想初始化state到一个空对象,并给状态以下类型:

type EmployeesViewState = {|
  employeesRequest?: Request<Array<Employee>>,
  geosRequest?: Request<Array<Geo>>,
|};

当我尝试分配一个空对象时出现的错误是

 33:   state: EmployeesViewState = {};
                                   ^^ object literal. Inexact type is incompatible with exact type
 33:   state: EmployeesViewState = {};
              ^^^^^^^^^^^^^^^^^^ exact type: object type

当然,由于我还没有可用的请求,因此我无法分配它们。我也无法分配undefined到对象,因为状态是用管道定义的,即它是精确类型。

我可以通过说来欺骗流程const a: any = {}; state = a;但这看起来真的很老套。还有其他方法可以解决这个问题吗?


这无疑是 Flow 的弱点之一。然而,它有一个相当简单的解决方法。只需将你的对象传递过去即可Object.freeze:

Object.freeze({})

当然,这只有在你不打算改变它的情况下才有效,但我发现在这种情况下我很少想要这样做。

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

Flowtype - 制作密封的空物体 的相关文章

随机推荐

  • Azure 间接对等互连

    假设我的对等互连设置如下 ABC 并且希望在 vnet A 和 C 之间路由流量 目前这可能吗 也许 B 中的 vnet 网关和 UDR 的使用 Thanks 目前来看 这是不可能的 VNet 对等互连位于两个虚拟网络之间 不存在派生的传递
  • Symfony2 身份验证“login_check”路径未找到

    我是 Symfony2 的新手 我正在尝试创建一个基本的注册 登录系统 因此 在 Symfony2 文档的帮助下 我创建了这个 security yml security encoders TestCompany InternetBundl
  • Angular 数据表中的自定义加载

    我试图在角度数据表中实现我的自定义加载 我检查了文档 https l lin github io angular datatables overrideLoadingTpl 建议实施 angular module showcase data
  • 从标准输入读取数组,忽略括号和逗号

    我的代码的示例输入是 1 2 3 4 我希望忽略大括号和逗号 并将数字读入数组 我怎样才能做到这一点 嗯 这可能有用 Ignore all characters up to and including the open curly brac
  • 如何在php中的echo中连接if语句? [复制]

    这个问题在这里已经有答案了 是否可以在 php 的 echo 中连接 if 语句 如何将一些基于条件的 html 附加到 echo 内的 html 类似如下 它会对你有所帮助 尝试这个
  • TLD 优先的类域标识符有何意义?

    TLD first 类域标识符 虽然拗口 但这就是我能想到的全部 多年来我在不同的地方看到过这些用法 并且想知道这个约定背后的历史 原因是什么 因为您可能会认为有一种真正的方式来提及域 我不使用 Java 但我通过探索发现命名空间通常是这样
  • 在xcode中添加不同的图像到不同的注释视图

    我试图将不同的图像添加到不同的注释视图中 换句话说 我想要一张独特的图片对应于每个独特的引脚 这是我正在尝试的 MKAnnotationView mapView MKMapView mapView viewForAnnotation id
  • 在 Python 中使用 Selenium 下载 Chrome 无头文件

    在无头模式下 Chrome 默认禁止文件下载 然而 最近他们在 DevTools 中添加了一个选项来启用此行为 https chromedevtools github io devtools protocol tot Page method
  • AFHTTPRequestOperationManager 的子类?

    我发现自己重复了很多代码AFHTTPRequestOperationManager在我的代码中 所以我正在考虑对其进行子类化 这样我就可以将其设置为单例 并将所有代码放入子类中 而不是将其分散到我的项目中 然而 在 AFNetworking
  • 如何将滑块添加到 QMenu 中?

    我的上下文菜单有很多项目 我需要一个滑块来控制它 但我没有找到任何功能可以做到这一点 我该怎么办 从 Stack Overflow 上的另一个帖子中 我发现了这个技巧 submenu gt setStyleSheet QMenu menu
  • 禁用 GCC 中特定循环的展开

    我有以下 4x4 矩阵向量乘法代码 double const restrict a 16 double const restrict x 4 double restrict y 4 pragma GCC unroll 1 does not
  • 如何计算两个补丁之间的距离?

    我需要找到代理前面的补丁与某个补丁 目标 之间的最小距离 以便选择能够创建最佳 最短 路径的补丁 原始的distance仅需要一个参数 因此我无法按原样使用该函数 The distance原语只需要一个参数 是的 但它是一个 补丁或海龟原语
  • 删除Python列表中重复的字典

    我有一个字典列表 我想删除具有相同键和值对的字典 对于此列表 a 123 b 123 a 123 我想退掉这个 a 123 b 123 另一个例子 对于此列表 a 123 b 1234 a 3222 b 1234 a 123 b 1234
  • %40 在 Jmeter 中没有被解码为 @

    我正在尝试使用 Jmeter 工具进行负载测试 其中我通过 csv 文件提供数据 该文件包含用于登录请求的所有电子邮件和密码 但是在传递参数时 Jmeter 用 40 对 符号进行编码 如果我在 csv 中用 40 代替 它不会在 Jmet
  • c、gets()、fgets()

    char s1 100 char s2 100 gets s1 fgets s2 sizeof s2 stdin printf d d n strlen s1 strlen s2 运行后 我输入 abcd 两次 我得到的结果是 4 5这是为
  • EF 建立自我关系

    这次我有一个简单的问题 我有一张表 与他自己相关 Id IdParent NodeName Where IdParent可以有 0 个或多个Id 问题是 我如何使用 Fluent Api 或数据注释来配置这种关系 这种关系的结果是一棵树 有
  • IIS7 无法通过进程启动启动我的 Exe 文件

    我读过很多文章 但据我所知 我已经完成了所有工作 在本地计算机 VS2010 上一切正常 仅当在 IIS7 服务器上工作时才会出现该问题 我想启动一个 exe 文件 如果我从 Windows 资源管理器手动启动它 它在服务器上运行得很好 D
  • 有没有办法测试Excel中的图表是否有其系列堆叠

    据我了解 Chars 有ChartType as XlChartType属性 但那是一长串枚举值 有没有办法测试图表是否使用堆叠系列而不列出全部 我试图避免以下情况 Select ActiveChart ChartType Case xlA
  • POST 抛出 HttpRequestMessage 不包含 Form 的定义

    我正在尝试在 C 中获取 POST 数据 我读过的所有内容都说要使用 Request Form parameterNameHere 我正在尝试这样做 但我收到一条错误消息 System Net Http HttpRequestMessage
  • Flowtype - 制作密封的空物体

    Flow 的文档说 When you create an object without any properties you create an unsealed object type in Flow 是否可以创建一个没有属性的密封对象