私の質問Dart JS Library, how to pass callback functionsのフォローアップとして、D3に渡された関数が正しいパラメータを持つようにしたいと思います。Dart Js-Interop関数タイプのパラメータ
Line line = new Line();
line.x(
allowInterop(
(List<num> d, num i, List<List<num>> data) {
return d[0]+10;
}
)
);
私はパラメータが適切に一致していない場合、それは文句を言うしたい:私はメソッドを呼び出すときに
@JS('d3')
library d3;
import 'dart:js';
import "package:js/js.dart";
typedef num D3AccessorFunction(List<num> d, num i, List<List<num>> data);
@JS('line')
class Line {
external Line();
external String call (List<List<num>> data);
external Line x(D3AccessorFunction func);
external Line y(num func(List<num> d, num i, List<List<num>> data));
}
:
だから私は、次のような何かをしたいと思いますたとえば、
line.x(
allowInterop(
(List<num> d) {
return d[0]+10;
}
)
);
残念ながら、allowInteropはこの苦情を呑み込むことはできません それを取り除きます。 私は回避策(D3定義で)作成した:
Function d3Function(D3AccessorFunction function) {
return allowInterop(function);
}
は、その後、私はこのようにそれを呼び出す:右のエラーをスローします
line.x(
d3Function(
(List<num> d, num i, List<List<num>> data) {
return d[0]+10;
}
)
);
。しかし、これを行うより良い方法があるかどうかを知りたいと思います。