F# 从IHTMLProp轻松检索值

F# 从IHTMLProp轻松检索值,f#,fable-f#,F#,Fable F#,我正在使用Fable.React并希望从IHTMLProp列表中检索一些值 这项功能目前可以使用,但感觉有点乏味: 选择输入(属性:IHTMLProp列表)选项= 让selectedValue= 属性 |>List.map(函数 |:?HTMLAttr作为一个-> 匹配 |值v->Some v |无 |(无) |>列表。选择id |>List.tryHead 有没有更简单的方法 我特别想简化嵌套匹配表达式,但欢迎提供任何提示。要简化查找,可以使用List.tryPick 为了简化匹配,可以使用

我正在使用
Fable.React
并希望从
IHTMLProp列表中检索一些值

这项功能目前可以使用,但感觉有点乏味:

选择输入(属性:IHTMLProp列表)选项=
让selectedValue=
属性
|>List.map(函数
|:?HTMLAttr作为一个->
匹配
|值v->Some v
|无
|(无)
|>列表。选择id
|>List.tryHead
有没有更简单的方法


我特别想简化嵌套匹配表达式,但欢迎提供任何提示。

要简化查找,可以使用
List.tryPick

为了简化匹配,可以使用活动模式

守则是:

let (| IsHTMLAttr | _ |) (attr: IHTMLProp) =
    match attr with
    | :? HTMLAttr as a -> Some a
    | _ -> None

let selectInput (attrs : IHTMLProp list) options =
    let selectedValue =         
        attrs
        |> List.tryPick (function
           | IsHTMLAttr (Value v) -> Some v
           | _ -> None)