Dart Js互操作:如何使用回调声明函数?
我正在使用编译的Dart应用程序中的node.js API。使用此api的package: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
@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创建问题我刚刚测试了您的样本,没有发现任何分析器问题。必须使用强模式分析器