switch_ on_ type
Avoid switch statements on a 'Type'.
Details
#AVOID using switch on Type.
Switching on Type is not type-safe and can lead to bugs if the
class hierarchy changes. Prefer to use pattern matching on the variable
instead.
BAD:
void f(Object o) {
switch (o.runtimeType) {
case int:
print('int');
case String:
print('String');
}
}
GOOD:
void f(Object o) {
switch(o) {
case int():
print('int');
case String _:
print('String');
default:
print('other');
}
}
Enable
#
To enable the switch_on_type rule, add switch_on_type under
linter > rules in your analysis_options.yaml
file:
linter:
rules:
- switch_on_type
If you're instead using the YAML map syntax to configure linter rules,
add switch_on_type: true under linter > rules:
linter:
rules:
switch_on_type: true
Unless stated otherwise, the documentation on this site reflects Dart 3.9.2. Report an issue.