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 回答