首页 > 解决方案 > F#检查泛型类型参数是否被区分联合

问题描述

创建约束时如何指定可区分联合的类型?我应该写什么而不是DiscriminatedUnion

let f<'U when 'U :> DiscriminatedUnion> ()

标签: genericsf#discriminated-union

解决方案


我不相信有任何方法可以在编译时强制执行此检查。在运行时,您可以在实现中使用FSharpType.IsUnion ref并可能通过抛出异常来处理错误情况。


推荐阅读