Skip to main content

prefer-async-callback

effort: 2m
has auto-fix
starter+

Suggests using the AsyncCallback typedef instead of Future<void> Function().

Example

❌ Bad:

// LINT: Prefer using AsyncCallback instead of Future<void> Function().
void fn(List<Future<void> Function()> _callbacks) {
// LINT: Prefer using AsyncCallback instead of Future<void> Function().
final Future<void> Function()? onPressed = enabled ? () {} : null;

// LINT: Prefer using AsyncCallback instead of Future<void> Function().
Future<void> Function()? onTap;

// LINT: Prefer using AsyncCallback instead of Future<void> Function().
final List<Future<void> Function()> callbacks = _callbacks;

// LINT: Prefer using AsyncCallback instead of Future<void> Function().
for (final Future<void> Function() callback in callbacks) {
callback();
}
}

✅ Good:

void fn(List<AsyncCallback> _callbacks) {
final AsyncCallback? onPressed = enabled ? () {} : null;

AsyncCallback? onTap;

final List<AsyncCallback> callbacks = _callbacks;

for (final AsyncCallback callback in callbacks) {
callback();
}
}