Pular para o conteúdo principal

strict_top_level_inference

Saiba mais sobre a regra de lint strict_top_level_inference.

Estável
Core
Correção disponível
Lançado no Dart 3.7

Especifique anotações de tipo.

Detalhes

#

Anote o tipo de declarações de nível superior e de membros semelhantes a classes, quando os tipos não forem inferidos a partir de superinterfaces ou de inicializadores.

O lint avisa sobre cada tipo de retorno, tipo de parâmetro e tipo de variável omitido em uma declaração de nível superior ou em uma declaração no nível de namespace semelhante a uma classe (membro estático ou de instância, ou declaração de construtor), que não recebe um tipo por inferência e, portanto, assume dynamic por padrão.

Os únicos tipos omitidos que podem receber um tipo por inferência de nível superior são os de declarações de variáveis com expressões de inicialização e os tipos de retorno e de parâmetros de membros de instância que sobrescrevem uma assinatura combinada de superinterfaces consistente.

Setters não precisam de tipo de retorno, pois ele é sempre considerado void.

RUIM:

dart
var _zeroPointCache;
class Point {
  get zero => ...;
  final x, y;
  Point(x, y) {}
  closest(b, c) => distance(b) <= distance(c) ? b : c;
  distance(other) => ...;
}
_sq(v) => v * v;

BOM:

dart
Point? _zeroPointCache;
class Point {
  Point get zero => ...;
  final int x, y;
  Point(int x, int y) {}
  closest(Point b, Point c) =>
      distance(b) <= distance(c) ? b : c;
  distance(Point other) => ...;
}
int _sq(int v) => v * v;

Ativar

#

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

analysis_options.yaml
yaml
linter:
  rules:
    - strict_top_level_inference

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

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