test_ types_ in_ equals
Saiba mais sobre a regra de lint test_types_in_equals.
Teste o tipo do argumento em operator ==(Object other).
Detalhes
#FAÇA testar o tipo do argumento em operator ==(Object other).
Não testar o tipo pode resultar em erros de tipo em tempo de execução, que serão inesperados para quem consome a sua classe.
RUIM:
class Field {
}
class Bad {
final Field someField;
Bad(this.someField);
@override
bool operator ==(Object other) {
Bad otherBad = other as Bad; // LINT
bool areEqual = otherBad != null && otherBad.someField == someField;
return areEqual;
}
@override
int get hashCode {
return someField.hashCode;
}
}
BOM:
class Field {
}
class Good {
final Field someField;
Good(this.someField);
@override
bool operator ==(Object other) {
if (identical(this, other)) {
return true;
}
return other is Good &&
this.someField == other.someField;
}
@override
int get hashCode {
return someField.hashCode;
}
}
Ativar
#
Para ativar a regra test_types_in_equals, adicione test_types_in_equals em
linter > rules no seu arquivo analysis_options.yaml:
linter:
rules:
- test_types_in_equals
Se você usa a sintaxe de mapa YAML para configurar as regras de lint,
adicione test_types_in_equals: true em linter > rules:
linter:
rules:
test_types_in_equals: true
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Relatar um problema.
Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.