在下面的代码中,F sharp 说:模块 xyz 需要一个值new : (IBlah<'a> * 'b) -> test<'a, 'b>')
我尝试将确切的构造函数作为显式的 new 提供,但它似乎没有帮助,尽管 Intellisense 虽然类型相同。我希望我不知何故弄错了约束。有人可以告诉我要更改什么以便代码编译(不删除约束)吗?非常感谢。
首先是 fsi 文件:
module xyz
type IBlah<'a> =
abstract something : 'a -> 'a
type IHuha =
abstract something : unit -> unit
type test<'a, 'b when 'a :> IHuha and 'b : comparison> =
new : (IBlah<'a> * 'b) -> test<'a, 'b>
member huha : unit -> unit
fs 文件是:
module xyz
type IBlah<'a> =
abstract something : 'a -> 'a
type IHuha =
abstract something : unit -> unit
type test<'a, 'b when 'a :> IHuha and 'b : comparison> (x:IBlah<'a>, y:'b) =
member x.huha () = printf "%O" x