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を使用しているためと考えられます。このようなエラーを回避するには、そのうちの 1 つを名前空間でインポートする必要があります

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

次に、両方で定義されたコードに次のようにアクセスできます

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

詳細については、この回答を参照してください

于 2012-04-23T16:44:26.470 に答える