1

如何定义将被序列化为 JSON 对象的记录...我一直在尝试为 YUI2 构造函数构建 oConfig 参数,例如:

type TreeParameter =
    {
        Type : string
        Label : string
        Expanded : bool
        Children : TreeParameter array
    }

谢谢!

大卫

4

2 回答 2

1

我想我们可以实现它,但它还没有进入接口生成器。现在你可以这样做:

let TreeParameter =
    let self = Type.New()
    Pattern.Config "TreeParameter" {
        Required =
            [
                "Type", T<string>
                "Label", T<string>
                "Expanded", T<bool>
                "Children", Type.ArrayOf self
            ]
        Optional = []
    }
    |=> self

从 F# 的角度来看,生成的类型将如下所示:

type TreeParameter(t: string, l: string, e: bool, c: TreeParameter[]) =
    member this.Type = t
    member this.Label = l
    member this.Expanded = e
    member this.Children = c

从 JavaScript 的角度来看,这些值看起来像这样:

{Type:t,Label:l,Expanded:e,Children:c}

本质上它就像一个没有记录语法和功能扩展的记录。

于 2011-09-23T15:37:21.257 回答
1

WebSharper 现在已经实现了这个功能。只需使用TSelf.

例子:

let TreeParameter =
    Pattern.Config "TreeParameter" {
        Required =
            [
                "Type", T<string>
                "Label", T<string>
                "Expanded", T<bool>
                "Children", Type.ArrayOf TSelf
            ]
        Optional = []
    }
于 2018-04-04T17:13:08.517 回答