Pular para o conteúdo principal

invalid_visible_outside_template_annotation

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

The annotation 'visibleOutsideTemplate' can only be applied to a member of a class, enum, or mixin that is annotated with 'visibleForTemplate'.

Descrição

#

O analisador gera este diagnóstico quando a anotação @visibleOutsideTemplate é usada de forma incorreta. Essa anotação só deve ser aplicada a membros de uma classe, enum ou mixin que tenha a anotação @visibleForTemplate, para que esses membros fiquem fora das restrições de visibilidade que @visibleForTemplate impõe.

Exemplos

#

O código a seguir gera este diagnóstico porque não há uma anotação @visibleForTemplate no nível da classe:

dart
import 'package:angular_meta/angular_meta.dart';
​
class C {
  @visibleOutsideTemplate
  int m() {
    return 1;
  }
}

O código a seguir gera este diagnóstico porque a anotação está em uma declaração de classe, e não em um membro de uma classe, enum ou mixin:

dart
import 'package:angular_meta/angular_meta.dart';
​
@visibleOutsideTemplate
class C {}

Correções comuns

#

Se a classe só fica visível para que templates possam referenciá-la, então adicione a anotação @visibleForTemplate à classe:

dart
import 'package:angular_meta/angular_meta.dart';
​
@visibleForTemplate
class C {
  @visibleOutsideTemplate
  int m() {
    return 1;
  }
}

Se a anotação @visibleOutsideTemplate estiver em algo diferente de um membro de uma classe, enum ou mixin com a anotação @visibleForTemplate, remova a anotação:

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