跳到主要内容

avoid_field_initializers_in_const_classes

稳定

避免在 const 类中使用字段初始化器。

详情

#

避免在 const 类中使用字段初始化器。

与其使用 final x = const expr;,不如写成 get x => const expr;,这样可以避免分配无用的字段。截至 2018 年 4 月,这对于 VM 是成立的,但对于编译成 JS 的代码则不然。

不好

dart
class A {
  final a = const [];
  const A();
}

dart
class A {
  get a => const [];
  const A();
}

启用

#

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

analysis_options.yaml
yaml
linter:
  rules:
    - avoid_field_initializers_in_const_classes

如果您使用 YAML 映射语法配置 linter 规则,请在 linter > rules 下添加 avoid_field_initializers_in_const_classes: true

analysis_options.yaml
yaml
linter:
  rules:
    avoid_field_initializers_in_const_classes: true