类型检查器不喜欢实现noSuchMethod的可调用对象

时间:2013-03-06 13:18:59

标签: dart

以下代码有效:

typedef num MyFunc(num);

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

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

但是,如果ObjectThatIsLikeFunc没有调用方法,而是定义noSuchMethod,则它不起作用。

typedef num MyFunc(num);

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

我得到“不是'MyFunc'类型的子类型。”

我的问题: 有没有办法告诉类型检查器,带有noSuchMethod的ObjectThatIsLikeFunc可以充当MyFunc?

1 个答案:

答案 0 :(得分:0)

简短的回答,而不是我所知道的。一般情况是,“我怎么能有一个实现noSuchMethod的类像任何类型一样?”我想我听过Dart可能允许这样做的一些话题,但我找不到它的参考。