strict_ top_ level_ inference
Saiba mais sobre a regra de lint strict_top_level_inference.
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:
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:
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:
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:
linter:
rules:
strict_top_level_inference: 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ê.