type A< ^B when ^B : (static member MyMember : Unit -> Unit)> = {
Field : unit
}
type TestA = {
AField : A< BTy >
}
and BTy = {
BField : Unit
} with
static member MyMember () = ()
当我定义字段AField的类型(AField : A< BTy >
)时,IntelliSense会给出以下错误提示:类型“BTy”不支持任何名为“MyMember”的运算符。
编辑后:
将它们分开声明可以解决问题,但是如果我有相互引用的情况,并且我不能声明第三个类型来包含这两种类型的共同信息,该怎么办才能避免这个问题呢?无论如何,如果我在定义下面加入 let pluto = ("" :> obj) :?> A< BTy >
,它就可以工作了,我想是因为从let绑定中两种类型都是可见的。
type A
,然后是type BTy
,再然后是type TestA
? - Be Brave Be Like Ukrainestatic
成员的限制条件在 MSDN 上被列为一个有效的示例。 - Be Brave Be Like Ukraine