avoid-unnecessary-nullable-fields
Warns when the type of a field is declared nullable, but the field always has a default value and therefore is always non-nullable.
Nullable fields usually require additional checks when using such fields (for example, a separate code branch for a null
value). Removing unnecessary nullability can help reduce the number of checks and simplify the code.
info
In cases where you still need to pass a nullable value, consider assigning the default value in the field initializer:
class SomeClass {
final String value;
const SomeClass(String? val) : value = val ?? 'default';
}
Example
❌ Bad:
class SomeClass {
// LINT: Declared field type is unnecessary marked as nullable. Try removing '?'.
final String? value;
const SomeClass({this.value = '1'});
const SomeClass.another({this.value = '2'});
}
class SomeOtherClass {
// LINT: Declared field type is unnecessary marked as nullable. Try removing '?'.
final String? value;
const SomeOtherClass(String val) : value = val;
}
✅ Good:
class SomeClass {
final String? value;
const SomeClass({this.value});
}
class SomeClass {
final String value;
const SomeClass({required this.value});
}
class SomeClass {
final String? value;
const SomeClass({this.value = '1'});
const SomeClass.another({this.value});
}
class SomeClass {
final String? value;
const SomeClass(String? val) : value = val;
}