prefer-void-callback

Group
Style
Path
lint/style/prefer-void-callback
Default
Off, opt in
Origin
Falcon
Domain
flutter
Rule
420 of 512
flutter

Prefers Flutter's VoidCallback alias over a nongeneric void Function() type.

Import VoidCallback from package:flutter/foundation.dart and use VoidCallback? for nullable callbacks. Functions with parameters, type parameters, or a non-void return type are not covered.

Invalid

example.dartdart
void invoke(void Function() callback) => callback();
void Function()? callback;
typedef Handler = void Function();
This type is `void Function()`; use Flutter's `VoidCallback` alias (or `VoidCallback?` when nullable).
1void invoke(void Function() callback) => callback();
This type is `void Function()`; use Flutter's `VoidCallback` alias (or `VoidCallback?` when nullable).
1void invoke(void Function() callback) => callback();
2void Function()? callback;
This type is `void Function()`; use Flutter's `VoidCallback` alias (or `VoidCallback?` when nullable).
2void Function()? callback;
3typedef Handler = void Function();

Valid

example.dartdart
VoidCallback? callback;
void takesArgument(void Function(int) callback) {}
void returnsValue(int Function() callback) {}
void generic(void Function<T>() callback) {}
typedef void Legacy();

Configure prefer-void-callback

Set its severity in falcon.json. See the configuration guide.

falcon.jsonjson
{
  "linter": {
    "rules": {
      "style": {
        "prefer-void-callback": "error"
      }
    }
  }
}

Or silence one occurrence with a suppression comment; the reason is required.

example.dartdart
// falcon-ignore lint/style/prefer-void-callback: <reason>
  • provide-deprecation-messageprovide_deprecation_messagerecommended

    Flags @deprecated and @Deprecated() annotations that carry no message.

  • public-member-api-docspublic_member_api_docs

    Documents public declarations and members in package libraries.

  • record-fields-ordering

    Flags named record type fields that violate the configured order.

  • require-trailing-commasrequire_trailing_commas

    Flags a multi-line call, declaration, assert, or collection literal that is missing a trailing comma.

  • sized-box-shrink-expandsized_box_shrink_expandrecommendedflutter

    Prefers SizedBox.shrink() / SizedBox.expand() over a SizedBox sized to zero or infinity.

  • slash-for-doc-commentsslash_for_doc_commentsrecommended

    Flags /** ...

  • sort-child-properties-lastsort_child_properties_lastrecommendedflutter

    Sort Widget-valued child properties last, except before closure arguments.

  • sort-constructors-firstsort_constructors_first

    Flags a constructor declared after a non-constructor member.