meta 1.1.8

  • Readme
  • Changelog
  • Installing
  • 93

Annotations for Static Analysis #

该软件包定义了Dart SDK随附的工具可以使用的注释.

Library Structure #

此程序包中的注释在两个库中定义.

meta.dart的库定义了注释,静态分析工具可以使用这些注释来提供对使用它们的代码的更完整分析. 在SDK中,这些工具包括命令行分析器( dartanalyzer )和分析服务器,该服务器用于驱动许多启用Dart的开发工具.

dart2js.dart的库定义了注释,这些注释为dart2js提供了提示,以提高其生成的JavaScript代码的质量. 这些注释当前处于试验阶段,可能会在此软件包的将来版本中删除.

Support #

在GitHub 问题跟踪器上发布问题和功能请求.

欢迎在Dart Analyzer论坛上提问和讨论.

License #

请参阅许可文件.

1.1.8 #

  • 引入@nonVirtual来注释不应在子类中或在混合时被覆盖的实例成员.

1.1.7 #

  • 引入@sealed以声明不允许将类或mixin作为超类型.

    只有与使用@sealed注释的类或mixin在同一包中的类@sealed可以扩展,实现或混入带注释的类或mixin. (SDK问题27372 ).

1.1.6 #

  • 将最大SDK版本设置为<3.0.0.

1.1.5 #

  • 引入@isTest和@isTestGroup以声明作为测试或测试组的函数.

1.1.4 #

  • 添加了dart2js.dart.

1.1.2 #

  • 回滚SDK约束更新为2.0.0. 不再需要.

1.1.1 #

  • 将SDK约束更新为2.0.0开发人员友好.

1.1.0 #

  • 引入@alwaysThrows来声明函数总是抛出(SDK问题17999 ). Dart SDK 1.25.0-dev.1.0中首先提供了此功能.

      import 'package:meta/meta.dart';
    
      // Without knowing that [failBigTime] always throws, it looks like this
      // function might return without returning a bool.
      bool fn(expected, actual) {
        if (expected != actual)
          failBigTime(expected, actual);
        else
          return True;
      }
    
      @alwaysThrows
      void failBigTime(expected, actual) {
        throw new StateError('Expected $expected, but was $actual.');
      }
    

1.0.5 #

  • 引入@experimental来注释库或库的公共接口一部分的任何声明(例如顶级成员,类成员和函数参数),以表明被注释的API是实验性的,可以删除或更改在任何时候都无需更新包含软件包的版本,尽管事实上这将是一个重大更改.

1.0.4 #

  • 引入@virtual以在强模式下允许字段覆盖(SDK问题27384 ).

      import 'package:meta/meta.dart' show virtual;
      class Base {
        @virtual int x;
      }
      class Derived extends Base {
        int x;
    
        // Expose the hidden storage slot:
        int get superX => super.x;
        set superX(int v) { super.x = v; }
      }
    

1.0.3 #

  • 引入@checked以覆盖方法并加强参数类型(SDK问题25578 ).

      import 'package:meta/meta.dart' show checked;
      class View {
        addChild(View v) {}
      }
      class MyView extends View {
        // this override is legal, it will check at runtime if we actually
        // got a MyView.
        addChild(@checked MyView v) {}
      }
      main() {
        dynamic mv = new MyView();
        mv.addChild(new View()); // runtime error
      }
    

1.0.2 #

  • 为只能在库或测试中引用的声明引入@visibleForTesting批注.

1.0.1 #

  • 更新了@factory以允许静态@factory和方法返回null .

1.0.0 #

  • 第一个稳定的API版本.

0.12.2 #

  • 更新了@protected以包括已实现的接口( @protected #252).

0.12.1 #

  • 修复了dartdocs中的markdown.

0.12.0 #

  • 为类型参数被视为可选的类引入@optionalTypeArgs批注.

0.11.0 #

  • 添加了新的Required构造函数,并带有一种方法来指定解释为什么需要参数的原因.

0.10.0 #

  • 为必须是抽象的或必须返回新分配的对象的方法引入@factory注释.
  • 引入@literal注释,该注释指示对构造函数的任何调用都必须使用关键字const除非该构造const一个或多个参数不是编译时常量.

0.9.0 #

  • 为只能从子类的实例成员调用的成员引入@protected注释.
  • 为需要的可选参数引入@required注释.
  • 为必须由所有重写方法调用的方法引入@mustCallSuper批注.

Use this package as a library

1. Depend on it

将此添加到包的pubspec.yaml文件中:


dependencies:
  meta: ^1.1.8

2. Install it

您可以从命令行安装软件包:

与酒吧:


$ pub get

使用Flutter:


$ flutter pub get

另外,您的编辑器可能支持pub getflutter pub get . 查看您的编辑器文档以了解更多信息.

3. Import it

现在,在Dart代码中,您可以使用:


import 'package:meta/meta.dart';
  
Popularity:
描述该程序包相对于其他程序包的受欢迎程度. [更多]
100
Health:
从静态分析得出的代码运行状况. [更多]
91
Maintenance:
反映出软件包的整洁和最新状态. [更多]
80
Overall:
以上的加权分数. [更多]
93
了解有关得分的更多信息.

我们在2020年5月13日对该程序包进行了分析,并在下面提供了得分,详细信息和建议. using: 分析已完成,状态使用以下命令 :

  • 飞镖:2.8.1
  • 直到:0.13.8-dev

Health suggestions

修复lib/meta.dart . (-8.17分)

lib/meta.dart分析报告了17条提示,包括:

第49行第36行:避免使用const关键字.

第60行第26行:避免使用const关键字.

第82行,第36行:避免使用const关键字.

第94行第26行:避免使用const关键字.

line 106 col 29: Avoid const keyword.

修复lib/dart2js.dart . (-1分)

分析lib/dart2js.dart报告了2条提示:

第20行第28行:避免使用const关键字.

第37行第30行:避免使用const关键字.

Maintenance suggestions

保持榜样. (-10点)

example/目录中创建一个简短的演示,以演示如何使用此软件包.

常见的文件名模式包括main.dartexample.dartmeta.dart . 具有多个示例的软件包应提供example/README.md .

有关更多信息,请参见pub包布局约定 .

描述太长. (-10点)

搜索引擎仅显示描述的第一部分. 尝试将包的pubspec.yaml文件中description字段的值保持在60到180个字符之间.

Dependencies

Package Constraint Resolved Available
直接依赖
Dart SDK > = 1.12.0 <3.0.0

by  ICOPY.SITE