Pular para o conteúdo principal

field_initializing_formal_not_assignable

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

The parameter type '{0}' is incompatible with the field type '{1}'.

Descrição

#

O analisador produz este diagnóstico quando o tipo de um parâmetro formal de inicialização não é atribuível ao tipo do campo que está sendo inicializado.

Exemplo

#

O código a seguir produz este diagnóstico porque o parâmetro formal de inicialização tem o tipo String, mas o tipo do campo é int. O parâmetro deve ter um tipo que seja subtipo do tipo do campo.

dart
class C {
  int f;
​
  C(String this.f);
}

Correções comuns

#

Se o tipo do campo estiver incorreto, altere o tipo do campo para corresponder ao tipo do parâmetro, e considere remover o tipo do parâmetro:

dart
class C {
  String f;
​
  C(this.f);
}

Se o tipo do parâmetro estiver incorreto, remova o tipo do parâmetro:

dart
class C {
  int f;
​
  C(this.f);
}

Se os tipos do campo e do parâmetro estiverem corretos, use um inicializador em vez de um parâmetro formal de inicialização para converter o valor do parâmetro em um valor do tipo correto:

dart
class C {
  int f;
​
  C(String s) : f = int.parse(s);
}

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