我正在使用已编译的Dart应用中的node.js API。使用package:js绑定此api' s:
@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'无法分配给 参数类型'(IncomingMessage,ServerResponse)→void'。 ( 例如/ main.dart:5)
问题是allowInterop会产生" JSFunction" - 供内部使用的弃用类。
从注释的角度来看 - 应该是正常的"功能"类。
如果要注意这一点,这很烦人。如果我不注意分析器错误 - 我可能会在代码中留下真正的错误。
我该如何解决?
P.S。使用最新的飞镖1.16
创建了问题