Dart Js互操作:如何使用回调声明函数?

Dart Js互操作:如何使用回调声明函数?,dart,dart-js-interop,Dart,Dart Js Interop,我正在使用编译的Dart应用程序中的node.js API。使用此api的package:js绑定: @JS('http') library http; import "package:js/js.dart"; external Server createServer( [ void requestListener(IncomingMessage request, ServerResponse response)]) 从main.dart调用: import

我正在使用编译的Dart应用程序中的node.js API。使用此api的package:js绑定:

    @JS('http')
    library http;
    import "package:js/js.dart";

    external Server createServer(
[ void requestListener(IncomingMessage request, ServerResponse response)])
从main.dart调用:

import "package:js/js.dart";
import "node_partly.dart" as http;

main() async {
  http.Server server = http.createServer(allowInterop(handler));
  server.listen(9876);
}

void handler(http.IncomingMessage request, http.ServerResponse response){
  response.write("Hello, from dart server! \n");
  response.write("You asked for ${request.url}");
  print(request.url);
  response.end();
}
一切正常

但是。分析器因错误而失败

警告:无法将参数类型“JSFunction”分配给 参数类型“(输入消息,服务器响应)→ “无效”。( 示例/主。省道:5)

问题是Allowinetop生成了“JSFunction”——不推荐用于内部使用的类

从注释的角度来看,应该有正常的“函数”类

如果要注意这一点,这是很烦人的。如果我不注意分析器错误,我可能会在代码中留下真正的错误

我怎样才能修好它

p.S.使用最新的dart 1.16


更新:在github创建问题

我刚刚测试了您的样本,没有发现任何分析器问题。必须使用强模式分析器