跳到主要內容

invalid_internal_annotation

一個包的私有 API 中只有公共元素可以被註解為內部的。

描述

#

當一個宣告被 internal 註解標記,且該宣告位於公共庫中或具有私有名稱時,分析器會產生此診斷。

示例

#

當以下程式碼位於公共庫中時,會產生此診斷,因為 internal 註解不能應用於公共庫中的宣告。

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

@internal
class C {}

當以下程式碼無論位於公共庫還是內部庫中時,都會產生此診斷,因為 internal 註解不能應用於具有私有名稱的宣告。

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

@internal
class _C {}

void f(_C c) {}

常見修復

#

如果宣告具有私有名稱,則移除該註解。

dart
class _C {}

void f(_C c) {}

如果宣告具有公共名稱,並且旨在作為包的內部使用,則將帶註解的宣告移至內部庫(換句話說,位於 src 目錄內的庫)。

否則,移除該註解的使用。

dart
class C {}