Pular para o conteúdo principal

extension_as_expression

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

Extension '{0}' can't be used as an expression.

Descrição

#

O analisador produz este diagnóstico quando o nome de uma extensão é usado em uma expressão que não seja um override de extensão nem uma forma de qualificar o acesso a um membro estático da extensão. Como classes definem um tipo, o nome de uma classe pode ser usado para se referir à instância de Type que representa o tipo da classe. Extensões, por outro lado, não definem um tipo e não podem ser usadas como literal de tipo.

Exemplo

#

O código a seguir produz este diagnóstico porque E é uma extensão:

dart
extension E on int {
  static String m() => '';
}
​
var x = E;

Correções comuns

#

Substitua o nome da extensão por um nome que possa ser referenciado, como um membro estático definido na extensão:

dart
extension E on int {
  static String m() => '';
}
​
var x = E.m();

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