跳到主要内容

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 {}