如何定义将被序列化为 JSON 对象的记录...我一直在尝试为 YUI2 构造函数构建 oConfig 参数,例如:
type TreeParameter =
{
Type : string
Label : string
Expanded : bool
Children : TreeParameter array
}
谢谢!
大卫
如何定义将被序列化为 JSON 对象的记录...我一直在尝试为 YUI2 构造函数构建 oConfig 参数,例如:
type TreeParameter =
{
Type : string
Label : string
Expanded : bool
Children : TreeParameter array
}
谢谢!
大卫
我想我们可以实现它,但它还没有进入接口生成器。现在你可以这样做:
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}
本质上它就像一个没有记录语法和功能扩展的记录。
WebSharper 现在已经实现了这个功能。只需使用TSelf
.
例子:
let TreeParameter =
Pattern.Config "TreeParameter" {
Required =
[
"Type", T<string>
"Label", T<string>
"Expanded", T<bool>
"Children", Type.ArrayOf TSelf
]
Optional = []
}