跳到主要內容

invalid_export_of_internal_element_indirectly

成員 '{0}' 不能作為軟體包公共 API 的一部分匯出,但作為 '{1}' 簽名的一部分被間接匯出。

描述

#

當一個 公共庫 匯出一個頂級函式,並且該函式的返回型別或至少一個引數型別被標記了 internal 註解時,分析器會產生此診斷。

示例

#

假設 src 目錄中有一個檔案 a.dart,其內容如下:

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

@internal
typedef IntFunction = int Function();

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

以下程式碼會產生此診斷,因為函式 f 的引數型別為 IntFunction,而 IntFunction 僅供內部使用。

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

常見修復方法

#

如果該函式必須是公共的,則將其簽名中的所有型別都設為公共型別。

如果該函式不需要匯出,則停止匯出它,可以透過從 show 子句中移除它、將其新增到 hide 子句中,或直接移除匯出宣告來實現。