Pular para o conteúdo principal

one_member_abstracts

Saiba mais sobre a regra de lint one_member_abstracts.

Descontinuado

Evite definir uma classe abstrata com um único membro quando uma função simples basta.

Detalhes

#

NOTA: Como classes abstratas de um único membro costumam ser um passo intermediário, esta regra de lint foi descontinuada a partir do Dart 3.13 e será removida em uma versão futura do SDK do Dart. Remova todas as inclusões desta lint dos seus arquivos de opções de análise. Se você quiser continuar aplicando-a, considere implementar a regra com um plugin do analisador.

De Effective Dart:

EVITE definir uma classe abstrata com um único membro quando uma função simples basta.

Diferentemente do Java, o Dart tem funções de primeira classe, closures e uma sintaxe leve e agradável para usá-las. Se tudo o que você precisa é algo como um callback, basta usar uma função. Se você está definindo uma classe que só tem um único membro abstrato com um nome sem significado, como call ou invoke, há uma boa chance de você só querer uma função.

RUIM:

dart
abstract class Predicate {
  bool test(item);
}

BOM:

dart
typedef Predicate = bool Function(item);

Ativar

#

Para ativar a regra one_member_abstracts, adicione one_member_abstracts em linter > rules no seu arquivo analysis_options.yaml:

analysis_options.yaml
yaml
linter:
  rules:
    - one_member_abstracts

Se você usa a sintaxe de mapa YAML para configurar as regras de lint, adicione one_member_abstracts: true em linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    one_member_abstracts: 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ê.