Open
Description
For example, instead of writing this:
import 'dart:js_interop';
@JS('Function')
external JSFunction _createFunction2(String first, String second, String body);
final JSFunction _add = _createFunction2('a', 'b', 'return a + b');
int add(int a, int b) {
var result = _add.callAsFunction(null, a.toJS, b.toJS) as JSNumber;
return result.toDartInt;
}
void main() {
print(add(1, 2));
}
write it this way:
import 'dart:js_interop';
@JS('Function')
external JSFunction<int Function(int, int)> _createFunction2(String first, String second, String body);
final JSFunction<int Function(int, int)> add = _createFunction2('a', 'b', 'return a + b');
void main() {
print(add(1, 2)); // If a direct call is possible.
}