F#3对WebSharper的支持

F#3对WebSharper的支持,f#,websharper,F#,Websharper,我正在为HTML中使用的各种类定义DU: type Class = | Logo | Screen | Continue 现在不幸的是,FSharpValue.GetUnionFields无法转换为JS(我不希望它转换为JS),并且在DU上重写ToString以使其转换为JS似乎也不起作用。因此,我定义了以下操作符来处理从Dom元素中添加/删除类: [<JavaScript>] let getClassString = function | Logo

我正在为HTML中使用的各种类定义DU:

type Class =
    | Logo
    | Screen
    | Continue
现在不幸的是,
FSharpValue.GetUnionFields
无法转换为JS(我不希望它转换为JS),并且在DU上重写ToString以使其转换为JS似乎也不起作用。因此,我定义了以下操作符来处理从Dom元素中添加/删除类:

[<JavaScript>]
let getClassString = function
    | Logo -> "logo"
    | Screen -> "screen"
    | Continue -> "continue"

[<JavaScript>]
let inline (|+>) (x : Element) (c : Class) = x.AddClass (getClassString c); x
[<JavaScript>]
let inline (|->) (x : Element) (c : Class) = x.RemoveClass (getClassString c)
[]
让getClassString=函数
|Logo->“Logo”
|屏幕->“屏幕”
|继续->“继续”
[]
让内联(|+>)(x:Element)(c:Class)=x.AddClass(getClassString c);x
[]
让内联(|->)(x:Element)(c:Class)=x.RemoveClass(getClassString c)
这真的让它成为一种幸福:

[<JavaScript>]
let mainMenu =
    Div [
        H2 [Text "Jewel"; Br [] :> _; Text "Warrior"] |+> Logo
        [
            "Play", gameScreen
            "HighScore", highScores
            "About", notReady
            "Exit", notReady
        ] |> Seq.map (fun (text, screen) -> LI [Button [Text text] |>! OnClick (fun _ _ -> show screen)])
        |> UL |+> Menu
    ] |+> MainMenu |+> Screen
[]
让主菜单=
Div[
H2[文字“宝石”;Br[]:>;文字“勇士”]|+>徽标
[
“玩”,游戏屏幕
“高分”,高分
“关于”,还没准备好
“退出”,还没准备好
]|>Seq.map(fun(文本,屏幕)->LI[按钮[文本]|>!OnClick(fun(文本)->显示屏幕)])
|>UL |+>菜单
]|+>主菜单|+>屏幕
有人能确认F#类型提供程序非常适合直接从CSS生成我的类DU吗

我们能期望WebSharper与VS11 beta兼容吗?还是只有在它发布时才兼容

谢谢

处理它: