gpt4 book ai didi

Flowtype - 制作一个密封的空物体

转载 作者:行者123 更新时间:2023-12-05 00:15:32 25 4
gpt4 key购买 nike

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

我的用例如下。我要初始化 state到一个空对象,并为 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; 来欺骗流量但这似乎真的很hacky。还有其他方法可以解决这个问题吗?

最佳答案

这当然是 Flow 的一大缺点。但是,它有一个相当简单的解决方法。只需通过 Object.freeze 传递您的对象:
Object.freeze({})
当然,这仅在您不打算对其进行变异时才有效,但我发现在这种情况下,我无论如何都不想这样做。

关于Flowtype - 制作一个密封的空物体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44399022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com