メインコンテンツにスキップ

invalid_export_of_internal_element_indirectly

メンバー '{0}' はパッケージの公開 API の一部としてエクスポートできませんが、'{1}' のシグネチャの一部として間接的にエクスポートされています。

説明

#

公開ライブラリが、返り値の型または少なくとも1つのパラメータの型が internal アノテーションでマークされているトップレベル関数をエクスポートする場合、アナライザーはこの診断を生成します。

#

src ディレクトリ内に以下の内容を含む a.dart ファイルがあるとします。

dart
import 'package:meta/meta.dart';

@internal
typedef IntFunction = int Function();

int f(IntFunction g) => g();

以下のコードは、関数 fIntFunction 型のパラメータを持っており、IntFunction は内部でのみ使用されることを意図しているため、この診断を生成します。

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

一般的な修正

#

関数を公開する必要がある場合は、関数シグネチャ内のすべての型を公開型にしてください。

関数をエクスポートする必要がない場合は、show 句から削除するか、hide 句に追加するか、またはエクスポートを削除することで、エクスポートを停止してください。