3

次のコードが機能します。

typedef num MyFunc(num);

class ObjectThatIsLikeFunc {
  call(x) => x;
}

var obj = new ObjectThatIsLikeFunc();
MyFunc g = obj; //works

ただし、ObjectThatIsLikeFunc に call メソッドがなく、代わりに noSuchMethod が定義されている場合、機能しません。

typedef num MyFunc(num);

class ObjectThatIsLikeFunc {
  noSuchMethod(InvocationMirror) => 100;
}

「タイプ 'MyFunc' のサブタイプではありません」というメッセージが表示されます。

私の質問: noSuchMethod を持つ ObjectThatIsLikeFunc が MyFunc として機能できることを型チェッカーに伝える方法はありますか?

4

1 に答える 1

0

短い答えですが、私が知っているわけではありません。一般化されたケースは、「noSuchMethod を実装するクラスを任意の型のように動作させるにはどうすればよいか」です。Dart がこれをどのように許可するかについての話を聞いたと思いますが、それへの参照を見つけることができませんでした。

于 2013-05-14T05:49:52.857 に答える