Pular para o conteúdo principal

always_specify_types

Detalhes sobre o diagnóstico 'always_specify_types' produzido pelo analisador do Dart.

Missing type annotation.

Descrição

#

O analisador emite este diagnóstico quando uma anotação de tipo explícita está ausente.

Isso inclui os seguintes casos:

  • Uma declaração de variável que usa var, final ou const sem um tipo específico.
  • Um parâmetro de função sem anotação de tipo.
  • Um literal de coleção sem argumentos de tipo explícitos.
  • Uma referência a uma classe genérica, mixin ou enum sem argumentos de tipo.

Tipos anotados com @optionalTypeArgs de package:meta são isentos de exigir argumentos de tipo.

Exemplos

#

O código a seguir produz este diagnóstico porque a variável de nível superior usa var sem um tipo explícito:

dart
var x = 1;

O código a seguir produz este diagnóstico porque o parâmetro p não tem anotação de tipo:

dart
void f(p) {}

O código a seguir produz este diagnóstico porque o literal de conjunto não tem um argumento de tipo explícito:

dart
Set<int> items = {1, 2};

O código a seguir produz este diagnóstico porque o tipo genérico C é usado sem especificar seu argumento de tipo:

dart
class C<T> {}
​
C c = C<int>();

Correções comuns

#

Adicione uma anotação de tipo explícita às declarações de variáveis:

dart
int x = 1;

Adicione uma anotação de tipo aos parâmetros:

dart
void f(int p) {}

Adicione argumentos de tipo explícitos aos literais de coleção:

dart
Set<int> items = <int>{1, 2};

Adicione argumentos de tipo às referências de tipos genéricos:

dart
class C<T> {}
​
C<int> c = C<int>();

Se um argumento de tipo for opcional, anote a declaração com @optionalTypeArgs de package:meta para isentá-la desta regra:

dart
import 'package:meta/meta.dart';
​
@optionalTypeArgs
class C<T> {}
​
C c = C();

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