内容

注释引用

在文档注释中仅引用作用域内的标识符。

此规则自 Dart 2.0 起可用。

此规则提供了一个 快速修复

详情

#

**请**在文档注释中仅引用作用域内的标识符。

如果将变量、方法或类型名称等标识符用方括号括起来,则 IDE 和 dart doc 等工具可以链接到它们。要使此功能正常工作,请确保文档中用方括号括起来的所有标识符都在作用域内。

例如,假设 outOfScopeId 位于作用域之外

错误

dart
/// Returns whether [value] is larger than [outOfScopeId].
bool isOutOfRange(int value) { ... }

正确

dart
/// Returns the larger of [a] or [b].
int max_int(int a, int b) { ... }

请注意,方括号注释格式旨在允许注释使用相当自然的格式引用声明,但不允许任意表达式。特别是,方括号内的代码引用可以包含以下任何内容

  • 一个裸标识符,它在注释的作用域内(有关文档注释中“作用域内”的含义,请参阅规范)。例如,[print][Future]
  • 用点分隔的两个标识符(“带前缀的标识符”),其中第一个标识符充当命名空间标识符,例如用包含类名作为前缀的类属性名称或方法名称,或者用导入前缀作为前缀的顶级标识符。例如,[Future.new](一个未命名构造函数)、[Future.value](一个构造函数)、[Future.wait](一个静态方法)、[Future.then](一个实例方法)、[math.max](假设“dart:async”已导入并使用 max 前缀)。
  • 带前缀的标识符后跟一对括号,用于区分命名构造函数与实例成员(其名称允许冲突)。例如,[Future.value()]
  • 用两个点分隔的三个标识符,其中第一个标识符是导入前缀名称,第二个标识符是顶级元素(如类或扩展),第三个标识符是该顶级元素的成员。例如,[async.Future.then](假设“dart:async”已导入并使用 async 前缀)。

已知限制

comment_references lint 规则与 Dart 分析器对注释引用的概念一致,该概念有时与 Dartdoc 对注释引用的概念不同。即使分析器无法解析,lint 规则也可能会报告 Dartdoc 可以解析的注释引用。有关更多信息,请参阅 linter#1142

用法

#

要启用 comment_references 规则,请在 analysis_options.yaml 文件的linter > rules下添加 comment_references

analysis_options.yaml
yaml
linter:
  rules:
    - comment_references