Pular para o conteúdo principal

yield_of_invalid_type

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

A yielded value of type '{0}' must be assignable to '{1}'.

The type '{0}' implied by the 'yield*' expression must be assignable to '{1}'.

Descrição

#

O analisador gera este diagnóstico quando o tipo do objeto produzido por uma expressão yield ou yield* não corresponde ao tipo dos objetos que devem ser retornados pelos tipos Iterable ou Stream retornados por um gerador (uma função ou método marcado com sync* ou async*).

Exemplo

#

O código a seguir gera este diagnóstico porque o getter zero é declarado para retornar um Iterable que produz inteiros, mas o yield está retornando uma string do iterável:

dart
Iterable<int> get zero sync* {
  yield '0';
}

Correções comuns

#

Se o tipo de retorno da função está correto, então corrija a expressão após a palavra-chave yield para retornar o tipo correto:

dart
Iterable<int> get zero sync* {
  yield 0;
}

Se a expressão após o yield está correta, então altere o tipo de retorno da função para aceitá-la:

dart
Iterable<String> get zero sync* {
  yield '0';
}

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