Pular para o conteúdo principal

test_types_in_equals

Saiba mais sobre a regra de lint test_types_in_equals.

Estável

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:

dart
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:

dart
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:

analysis_options.yaml
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:

analysis_options.yaml
yaml
linter:
  rules:
    test_types_in_equals: true

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ê.