在Purescript中建模Javascript对象

问题描述 投票:1回答:1

我正在尝试使用Purescript为Firestore中的SetOptions数据类型建模。

到目前为止,我有以下内容

SetOptions

请注意,foreign import data FieldPath :: Type foreign import buildFieldPath :: Array String -> FieldPath foreign import fieldNames :: FieldPath -> Array String type MergeFields = Array (String \/ FieldPath) data SetOptions = MergeOption Merge | MergeFieldsOption MergeFields 是求和类型,因为SetOptionsmerge是互斥的(即使未记录)。>>

现在我需要将mergeFields转换为Javascript对象,以便可以将其从Javascript SetOptions库传递给某些函数。

应该是某种形式

firebase

我的问题是这种类型。

由于包含的数据不是同质的,因此我无法使用{ "mergeFields": [ "foo", new FieldPath("bar", "baz") ] } Object表示布尔值,Object表示数组)。

我无法使用merge,因为我需要在结果中包含mergeFields个对象。

我到目前为止发现的唯一解决方案是返回一些Json,然后在javascript端对其进行解析,并在需要的地方添加Json对象,但是它看起来很脏而且很脆弱。

我正在尝试使用Purescript对Firestore中的SetOptions数据类型进行建模。到目前为止,我具有以下外部导入数据FieldPath ::类型外部导入buildFieldPath :: Array String-> ...

google-cloud-firestore purescript
1个回答
2
投票

我可能会跳过PS端的副产品FieldPath表示,只提供这两个“脏”构造函数:

© www.soinside.com 2019 - 2024. All rights reserved.