Skip to main content

unnecessary_type_name_in_constructor

Learn about the unnecessary_type_name_in_constructor linter rule.

Unreleased
Fix available
Released in Dart 3.13

Don't use an explicit type name in a constructor.

Details

#

Don't include the type name in a constructor declaration. It isn't necessary, and the code is shorter and cleaner without it.

BAD:

dart
class C {
  C();
  C.name();
}

GOOD:

dart
class C {
  new ();
  new name();
}

Enable

#

To enable the unnecessary_type_name_in_constructor rule, add unnecessary_type_name_in_constructor under linter > rules in your analysis_options.yaml file:

analysis_options.yaml
yaml
linter:
  rules:
    - unnecessary_type_name_in_constructor

If you're instead using the YAML map syntax to configure linter rules, add unnecessary_type_name_in_constructor: true under linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    unnecessary_type_name_in_constructor: true