avoid_ redundant_ argument_ values
Learn about the avoid_redundant_argument_values linter rule.
Avoid redundant argument values.
Details
#DON'T pass an argument that matches the corresponding parameter's default value.
Note that a method override can change the default value of a
parameter, so that an argument may be equal to one default
value, and not the other. Take, for example, two classes,
A and B where B is a
subclass of A, and B overrides a
method declared on A, and that method has a
parameter with one default value in A's
declaration, and a different default value in B's
declaration. If the static type of the target of the invoked
method is B, and B's default value
matches the argument, then the argument can be omitted (and if
the argument value is different, then a lint is not reported).
If, however, the static type of the target of the invoked
method is A, then a lint may be reported, but we
cannot know statically which method is invoked, so the
reported lint may be a false positive. Such cases can be
ignored inline with a comment like
// ignore: avoid_redundant_argument_values.
BAD:
void f({bool valWithDefault = true, bool? val}) {
...
}
void main() {
f(valWithDefault: true);
}
GOOD:
void f({bool valWithDefault = true, bool? val}) {
...
}
void main() {
f(valWithDefault: false);
f();
}
Enable
#
To enable the
avoid_redundant_argument_values rule, add
avoid_redundant_argument_values
under
linter > rules in your
analysis_options.yaml
file:
linter:
rules:
- avoid_redundant_argument_values
If you're instead using the YAML map syntax to configure
linter rules, add
avoid_redundant_argument_values: true under
linter > rules:
linter:
rules:
avoid_redundant_argument_values: true
除非另有说明,文档之所提及适用于 Dart 3.12.2 版本报告页面问题.