extension_ declares_ instance_ field
Detalhes sobre o diagnóstico 'extension_declares_instance_field' produzido pelo analisador do Dart.
Extensions can't declare instance fields.
Descrição
#O analisador produz este diagnóstico quando uma declaração de campo de instância é encontrada em uma extensão. Não é válido definir um campo de instância porque extensões podem apenas adicionar comportamento, não estado.
Exemplo
#
O código a seguir produz este diagnóstico porque s é um campo de
instância:
extension E on String {
String s = '';
}
Correções comuns
#Se o valor puder ser calculado sem armazená-lo em um campo, tente usar um getter ou um método:
extension E on String {
String get s => '';
}
Se o valor precisar ser armazenado, mas for o mesmo para toda instância, tente usar um campo estático:
extension E on String {
static String s = '';
}
Se cada instância precisar ter seu próprio valor armazenado, tente usar um
par de getter e setter apoiado por um Expando estático:
extension E on String {
static final _s = Expando<String>();
String get s => _s[this] ?? '';
set s(String value) => _s[this] = value;
}
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ê.