1

我有一个接受CanvasRenderingContext2D作为参数并进行绘图的函数。每当我尝试通过它时,我都会得到:

CanvasRenderingContext2D is not assignable to CanvasRenderingContext2D

该函数如下所示:

  void draw(CanvasRenderingContext2D context) {
  ...
  }

我认为所有内容都作为 Dart 中的引用传递(就像 JS 一样),这不应该导致这样的问题。有没有办法说我想要引用对象而不是对象本身?或者还有什么我应该知道的吗?

编辑:

问题是我在一个文件中导入了dart:html而在另一个文件中导入了dart:dom。对应的接口名称相同但不同。

4

1 回答 1

1

这很可能是因为您在同一个应用程序中使用了dart:domdart:html 。为避免此类错误,您应该使用命名空间导入其中一个

#import('dart:html');
#import('dart:dom', prefix: 'dom');

然后您可以访问它们中定义的代码

window     // dart:html window
dom.window // dart:dom window

有关更多信息,请参阅答案

于 2012-04-23T16:44:26.470 回答