Pular para o conteúdo principal

invalid_export_of_internal_element_indirectly

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

The member '{0}' can't be exported as a part of a package's public API, but is indirectly exported as part of the signature of '{1}'.

Descrição

#

O analisador produz este diagnóstico quando uma biblioteca públicaPublic libraryUma biblioteca localizada no diretório `lib` de um pacote, mas não dentro do diretório `lib/src`. Saiba mais exporta uma função de nível superior com tipo de retorno ou com pelo menos um tipo de parâmetro marcado com a anotação internal.

Exemplo

#

Dado um arquivo a.dart no diretório src que contém o seguinte:

dart
import 'package:meta/meta.dart';
​
@internal
typedef IntFunction = int Function();
​
int f(IntFunction g) => g();

O código a seguir produz este diagnóstico porque a função f tem um parâmetro do tipo IntFunction, e IntFunction é destinado apenas a uso interno:

dart
export 'src/a.dart' show f;

Correções comuns

#

Se a função precisar ser pública, então torne públicos todos os tipos na assinatura da função.

Se a função não precisar ser exportada, então deixe de exportá-la, seja removendo-a da cláusula show, adicionando-a à cláusula hide, seja removendo o export.

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