WebSharper Interface Generator - Записи - PullRequest
1 голос
/ 23 сентября 2011

Как мне определить запись, которая будет сериализована в объект JSON ... Я пытался создать параметр oConfig для конструктора YUI2, что-то вроде:

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

Спасибо! * * 1004

David

Ответы [ 2 ]

1 голос
/ 04 апреля 2018

WebSharper теперь реализовал эту функцию.Просто используйте TSelf.

Пример:

let TreeParameter =
    Pattern.Config "TreeParameter" {
        Required =
            [
                "Type", T<string>
                "Label", T<string>
                "Expanded", T<bool>
                "Children", Type.ArrayOf TSelf
            ]
        Optional = []
    }
1 голос
/ 23 сентября 2011

Полагаю, мы могли бы реализовать это, но он еще не превратился в генератор интерфейсов. На данный момент вы можете сделать:

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}

По сути это похоже на запись без использования синтаксиса записи и функционального расширения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...