Iは、一般的なパラメータを受け取り、抽象メソッド渡し「単位」
type MyInterface<'a> =
abstract member abstractMethod: 'a -> 'a
を有するインタフェースを持っている...と私は、基本クラスから継承する派生クラスを有しますtypeパラメータ
type Derived() =
interface MyInterface<unit> with
override this.abstractMethod (_) =()
ためユニットを使用しますが、コンパイラはそれが
を不平を言います0Error The member 'abstractMethod : unit -> unit' does not have the correct type to override the corresponding abstract method.
ユニットの代わりに別のタイプを使用すると、たとえばのコードがコンパイルされます。
これはコンパイラのバグですか?それを回避する方法はありますか?
ありがとうございます!
abstractMethod' 'のあなたのオーバーライドが署名'ユニットを持っていません - > unit' - 指定されていない型( '_')の引数をとります。 –
https://stackoverflow.com/questions/40283165/under-what-conditions-is-unit-a-typeとそこからリンクされているその他の質問を参照してください。 – kvb