Pular para o conteúdo principal

prefer_initializing_formals

Saiba mais sobre a regra de lint prefer_initializing_formals.

Estável
Recomendado
Correção disponível

Use parâmetros formais de inicialização quando possível.

Detalhes

#

FAÇA usar parâmetros formais de inicialização quando possível.

Usar parâmetros formais de inicialização quando possível deixa seu código mais conciso.

RUIM:

dart
class Point {
  num? x, y;
  Point(num x, num y) {
    this.x = x;
    this.y = y;
  }
}

BOM:

dart
class Point {
  num? x, y;
  Point(num this.x, num this.y);
}

RUIM:

dart
class Point {
  num? x, y;
  Point({num? x, num? y}) {
    this.x = x;
    this.y = y;
  }
}

BOM:

dart
class Point {
  num? x, y;
  Point({required num this.x, required num this.y});
}

NOTA: Esta regra não gera lint para parâmetros nomeados, a menos que o nome do parâmetro e o nome do campo sejam iguais. O motivo é que resolver esse lint exigiria renomear o campo ou renomear o parâmetro, e ambas as ações poderiam ser uma mudança que quebra compatibilidade. Por exemplo, o código a seguir não gera lint:

dart
class Point {
  bool? isEnabled;
  Point({bool? enabled}) {
    this.isEnabled = enabled; // OK
  }
}

NOTA: Observe também que é possível impor um tipo mais restrito do que o do campo inicializado, com um parâmetro formal de inicialização. No exemplo a seguir, o construtor sem nome Bid exige um int não nulo, apesar de amount ser declarado como anulável (int?).

dart
class Bid {
  final int? amount;
  Bid(int this.amount);
  Bid.pass() : amount = null;
}

Ativar

#

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

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_initializing_formals

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

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