繁体   English   中英

使用 dart 中的分析器检查构造函数元素

[英]Check constructor element with analyzer in dart

我在 Flutter 中创建了一个库来为带注释的元素生成代码。 我需要使用分析器检查类的构造函数中的参数是否需要。

带注释的小部件示例:

@myAnnotation
class WidgetText extends StatelessWidget {
  WidgetText({
    @required this.text,
    this.subtitle,
  });

  final String text;
  final String subtitle;

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        Text(text),
        if (subtitle != null) Text(subtitle),
      ],
    );
  }
}

我的访客示例:

class MyAnnotationVisitor extends SimpleElementVisitor<void> {
  @override
  void visitFieldElement(FieldElement element) {
    print('${element.name} is required? ${element.hasRequired}');
  }
}

上面的这个访问者为WidgetText输出这个

text is required? false
subtitle is required? false

仅当在字段上以这种方式标记注释时,访问者才能验证是否需要该字段。 但是是重复的,我想检查构造函数。

@myAnnotation
class WidgetText extends StatelessWidget {
  WidgetText({
    @required this.text,
    this.subtitle,
  });

  @required
  final String text;
  final String subtitle;

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        Text(text),
        if (subtitle != null) Text(subtitle),
      ],
    );
  }
}

这是可能的分析ParameterElement 有一个叫做hasRequired

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM